KR20200001208A - 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 - Google Patents

융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 Download PDF

Info

Publication number
KR20200001208A
KR20200001208A KR1020180073874A KR20180073874A KR20200001208A KR 20200001208 A KR20200001208 A KR 20200001208A KR 1020180073874 A KR1020180073874 A KR 1020180073874A KR 20180073874 A KR20180073874 A KR 20180073874A KR 20200001208 A KR20200001208 A KR 20200001208A
Authority
KR
South Korea
Prior art keywords
program code
scheduling policy
unit processors
processor
controller
Prior art date
Application number
KR1020180073874A
Other languages
English (en)
Other versions
KR102569435B1 (ko
Inventor
남지훈
Original Assignee
에스케이하이닉스 주식회사
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 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180073874A priority Critical patent/KR102569435B1/ko
Priority to US16/270,450 priority patent/US11068283B2/en
Priority to CN201910181929.1A priority patent/CN110647359B/zh
Publication of KR20200001208A publication Critical patent/KR20200001208A/ko
Application granted granted Critical
Publication of KR102569435B1 publication Critical patent/KR102569435B1/ko

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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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
    • 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/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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

본 기술의 일 실시예에 의한 융합형 반도체 장치는 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 코드 영역에 저장하는 저장장치, 복수의 단위 프로세서를 구비하며, 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹 및 호스트 장치로부터 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 제공받아, 스케쥴링 정책에 기초하여 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하도록 구성되는 부트 컨트롤러를 포함할 수 있다.

Description

융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치{Convergence Semiconductor Apparatus and Operation Method Thereof, Stacked Memory Apparatus Having the Same}
본 기술은 반도체 장치에 관한 것으로, 보다 구체적으로는 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치에 관한 것이다.
초고속 네트워크가 구축되고, 고화소 카메라, 고화질 디스플레이 장치 등 고사양 하드웨어가 개발됨에 따라 고성능 컴퓨팅 장치에 관한 수요가 증대하고 있다. 아울러, 물리적 공간이 한정적인 모바일 전자 장치에도 점점 더 고사양의 하드웨어가 탑재되고 있는 추세에 있다.
모바일 전자 장치는 동영상이나 음악 감상, 게임 플레이 등의 서비스를 제공하는 경우 배터리 소모가 많으므로, 고화질 콘텐츠를 제어하기 위해 고성능 및 저전력 프로세서를 필요로 하고 있다.
전자 장치의 이러한 고성능 및 고사양화에 따라 프로세서와 메모리 장치가 주고받는 데이터의 양이 증가할 수 밖에 없다.
메모리 장치는 적은 전력으로 많은 양의 데이터를 입출력하는 작업을, 프로세서는 짧은 시간에 많은 연산을 처리하는 것을 목적으로 하고 있다.
그러므로 많은 양의 데이터를 고속으로 처리하기 위해 프로세서와 메모리를 하나로 결합한 융합형 메모리 반도체에 대한 연구가 필요한 실정이다.
본 기술의 실시예는 한정된 자원을 효율적으로 활용할 수 있는 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치를 제공할 수 있다.
본 기술의 일 실시예에 의한 융합형 반도체 장치는 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치; 복수의 단위 프로세서를 구비하며, 상기 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹; 및 상기 호스트 장치로부터 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 제공받아, 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하도록 구성되는 부트 컨트롤러;를 포함할 수 있다.
본 기술의 일 실시예에 의한 융합형 반도체 장치의 동작 방법은 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치와, 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹을 포함하는 컨트롤러를 구비하는 융합형 반도체 장치의 동작 방법으로서, 상기 컨트롤러가 상기 호스트 장치로부터 상기 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 수신하는 단계; 및 상기 컨트롤러가 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하는 단계;를 포함하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 적층형 메모리 장치는 베이스 다이 및 상기 베이스 다이 상에 적층되는 복수의 코어 다이가 복수의 관통 전극을 통해 신호 전송이 가능하도록 적층되며, 상기 복수의 코어 다이 중 적어도 하나는 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치를 구비하고, 상기 베이스 다이는, 복수의 단위 프로세서를 구비하며, 상기 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹; 및 상기 호스트 장치로부터 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 제공받아, 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하도록 구성되는 부트 컨트롤러;를 포함하도록 구성될 수 있다.
본 기술에 의하면 프로세서에서 실행할 프로그램 코드를 용이하게 변경할 수 있다. 또한, 복수의 프로세서가 탑재되는 매니 코어(many-core) 환경에서 프로세서 별로 처리할 프로그램 코드를 적응적으로 할당할 수 있어 융합형 반도체 장치를 고성능으로 운용할 수 있다.
도 1은 일 실시예에 의한 융합형 반도체 장치의 구성도이다.
도 2는 일 실시에예 의한 컨트롤러의 구성도이다.
도 3은 일 실시예에 의한 융합형 반도체 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 의한 스케쥴링 정책 정보를 설명하기 위한 도면이다.
도 5는 일 실시예에 의한 스케쥴링 정책의 예를 설명하기 위한 도면이다.
도 6은 일 실시예에 의한 코드별 처리 부하량을 고려한 스케쥴링 예를 설명하기 위한 도면이다.
도 7 내지 도 9는 실시예들에 의한 적층형 메모리 장치의 구성도이다.
도 10은 일 실시예에 의한 네트워크 시스템의 구성도이다.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.
도 1은 일 실시예에 의한 융합형 반도체 장치의 구성도이다.
도 1을 참조하면, 일 실시예에 의한 융합형 반도체 장치(10)는 컨트롤러(100) 및 저장장치(150)를 포함할 수 있다.
컨트롤러(100)는 호스트 장치의 요청에 응답하여 저장장치(150)를 제어할 수 있다. 예를 들어, 컨트롤러(100)는 호스트 장치로부터 프로그램(라이트) 커맨드, 접근 어드레스 및 데이터가 제공됨에 따라 저장장치(150)에 데이터를 프로그램할 수 있다. 그리고, 호스트 장치의 리드 커맨드 및 접근 어드레스에 응답하여 저장장치(150)로부터 데이터를 리드하여 호스트 장치로 제공할 수 있다.
일 실시예에서, 컨트롤러(100)는 복수의 프로세서를 구비하는 프로세서 그룹(20)을 포함할 수 있다.
프로세서 그룹(20)을 구성하는 각각의 프로세서는 해당 프로세서에 종속된 내부 메모리를 구비할 수 있다. 프로세서 그룹(20)의 각 프로세서는 내부 메모리에 존재하는 프로그램 코드를 인출(fetch), 해석(decoding) 및 처리(execution)하고 처리 결과를 저장하도록 구성될 수 있다.
저장장치(150)는 메모리 컨트롤러(140)로부터 커맨드 및 어드레스를 수신하고, 수신된 어드레스에 대응하는 영역을 액세스하여 대응하는 커맨드를 실행하도록 구성된다. 커맨드는 예를 들어 라이트 커맨드, 리드 커맨드 등을 포함할 수 있다.
저장장치(150)는 휘발성 메모리 및/또는 비휘발성 메모리 장치를 포함할 수 있다. 일 실시예에서, 저장장치(150)는 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리 소자, 낸드(NAND) 플래시 메모리, 노어(NOR) 플래시 메모리, PRAM(Phase-Change RAM), ReRAM(Resistive RAM) FRAM(Ferroelectric RAM), STT-MRAM(Spin Torque Transfer Magnetic RAM) 등과 같은 다양한 비휘발성 메모리 소자, 또는 휘발성 메모리 소자와 비휘발성 메모리 소자의 하이브리드 형태로 구성될 수 있으나 이에 한정되는 것은 아니다.
일 실시예에서, 저장장치(150)는 데이터 영역(1501) 및 코드 영역(1503)으로 구분될 수 있다. 저장장치(150)의 코드 영역(1503)에는 적어도 하나의 프로그램 코드가 저장될 수 있다. 프로그램 코드는 부트코드, 또는 다양한 어플리케이션을 구동할 수 있는 어플리케이션 구동 코드일 수 있다. 데이터 영역(1501)은 사용자 데이터가 저장되는 영역일 수 있다. 데이터 영역(1501) 및 코드 영역(1503) 각각의 사이즈 또는 할당 비율은 융합형 반도체 장치(10)가 적용될 호스트 장치의 종류나 특성에 따라 결정 및 변경될 수 있다.
저장장치(150)의 코드 영역(1503)에 적어도 하나의 프로그램 코드를 저장하는 주체는 호스트 장치, 또는 저장장치(150) 제조사의 컴퓨팅 장치, 또는 융합형 반도체 장치(10) 제조사의 컴퓨팅 장치일 수 있으나 이에 한정되는 것은 아니다. 코드 영역(1503)에 적어도 하나의 프로그램 코드를 저장하기 위하여 롬 라이터(ROM writer), JTAG(Joint Test Action Group)와 같은 직렬통신 인터페이스, BDM(Background Debug Mode)와 같은 인터페이스, 네트워크 인터페이스 등을 이용할 수 있으나 이에 한정되는 것은 아니다.
호스트 장치는 코드 영역(1503)에 저장된 적어도 하나의 프로그램 코드별 적재 위치(어드레스)와 프로그램 코드의 운용 정책을 저장 및 관리할 수 있다. 프로그램 코드의 운용 정책이란, 프로세서 그룹(20)에 포함되는 복수의 프로세서 각각이 어떤 프로그램 코드를 사용할지에 대한 스케쥴링 정책을 의미하며 적어도 하나의 옵션을 가질 수 있다. 컨트롤러(100)는 융합형 반도체 장치(10)의 부팅시 각 프로그램 코드의 저장 위치, 각 프로그램 코드에 대한 스케쥴링 정책 및/또는 옵션을 컨트롤러(100)로 제공할 수 있다. 다른 관점에서, 호스트 장치는 융합형 반도체 장치(10)의 부팅 중에 프로세서 그룹(20) 내의 각 프로세서가 사용할 프로그램 코드 정보 및 각 프로그램 코드의 저장 위치를 프로세서 그룹(20) 내 각 프로세서로 브로드캐스트할 수 있다.
스케쥴링 정책은 적어도 하나의 옵션을 포함할 수 있고, 각 옵션은 프로세서별로 사용할 프로그램 코드의 종류에 대한 정보를 포함할 수 있다. 각각의 프로세서는 스케쥴링 정책의 옵션에 따라 프로그램 코드가 저장된 코드 영역(1503)으로부터 인출된 프로그램 코드를 자신의 내부 메모리에 저장한 후 해석 및 처리할 수 있다.
적어도 하나의 프로그램 코드가 저장장치(150)에 저장됨에 따라, 융합형 반도체 장치(10)는 프로그램 코드를 저장할 별도의 공간, 예를 들어 RAM 또는 ROM으로 구성되는 별도의 코드 저장 메모리를 구비하지 않아도 무방하다. 통상 부트 코드를 저장하기 위해 마련되는 코드 저장용 메모리는 용량이 제한적이므로 부트 코드 외의 다른 프로그램 코드를 저장하는 데 한계가 있다. 본 기술에서는 부트 코드 또는 부트코드와 그 외의 프로그램 코드를 고용량의 저장장치(150)에 저장해 둔다. 그리고 컨트롤러(100)의 제어에 따라 해당 프로그램 코드를 실행하도록 스케쥴링된 프로세서로 프로그램 코드가 복사된 후 실행될 수 있다. 프로그램 코드가 프로세서로 복사되고 실행되는 방법은 다양한 실시예가 존재할 수 있으며, 구체적인 실시예는 후술할 것이다.
도 2는 일 실시예에 의한 컨트롤러의 구성도이다.
도 2를 참조하면, 일 실시예에 의한 컨트롤러(100)는 프로세서 그룹(20), 호스트 인터페이스(110), 부트 컨트롤러(120), DMA(Direct Memory Access) 컨트롤러(140) 및 메모리 컨트롤러(140)를 포함할 수 있다.
일 실시예에서, 프로세서 그룹(20)은 복수의 단위 프로세서(P0~Pm)를 포함할 수 있다. 각각의 단위 프로세서(P0~Pm)는 자신에게 종속된 내부 메모리(IRAM)를 구비할 수 있으며, 각기 동일하거나 다른 프로그램 코드를 순차적 또는 병렬적으로 처리하도록 구성될 수 있다.
복수의 프로세서(P0~Pm)는 어플리케이션 프로세서(Application Processor)를 포함할 수 있다. 어플리케이션 프로세서는 각종 어플리케이선을 구동할 수 있도록 구성되는 프로세서일 수 있다.
프로세서 그룹(20)을 구성하는 복수의 단위 프로세서(P0~Pm)가 어떤 종류의 프로그램 코드를 어떤 방식으로 실행할지는 호스트 장치에 의해 스케쥴링될 수 있으나 이에 한정되는 것은 아니다.
일 실시예에서, 호스트 장치는 복수의 단위 프로세서(P0~Pm)가 동일한 프로그램 코드를 순차적 또는 병렬로 실행하도록 스케쥴링할 수 있다. 일 실시예에서, 호스트 장치는 복수의 프로세서(P0~Pm)를 지정된 개수로 나누어 복수의 프로세서 파트로 구성하고 각 프로세서 파트마다 각기 다른 프로그램 코드를 순차적 또는 병렬로 실행하도록 스케쥴링할 수 있다. 동일한 프로그램 코드를 실행하도록 스케쥴링된 프로세서 파트에 포함된 각 단위 프로세서들은 순차적 또는 병렬로 프로그램 코드를 실행할 수 있다.
호스트 장치는 복수의 프로세서(P0~Pm) 각각이 실행할 프로그램 코드를 할당하는 프로그램 코드 스케쥴링 정책을 수립하는 데 있어서, 프로그램 코드별 처리 부하량에 기초한 가중치를 고려할 수 있다. 즉, 각 프로세서 그룹(20)에서 실행될 수 있는 복수의 프로그램 코드 각각은 처리할 데이터의 양에 따라 소요되는 처리 시간이 서로 다를 수 있다. 그러므로, 각 프로그램 코드별 데이터 처리 소요 시간에 따른 가중치와 단위 프로세서(P0~Pm)의 총 개수에 따라 몇 개의 프로세서(P0~Pm)가 어떤 프로그램 코드를 실행하도록 할지 스케쥴링할 수 있다.
프로그램 코드 스케쥴링 정책 및/또는 옵션은 호스트의 필요에 따라, 또는 사용자의 요청에 따라 변경될 수 있다.
호스트 인터페이스(110)는 호스트 장치로부터 제어신호, 커맨드 및 클럭신호를 수신하고 데이터의 입출력을 제어하기 위한 통신 채널을 제공할 수 있다. 특히, 호스트 인터페이스(110)는 호스트 장치와 융합형 반도체 장치(10) 간의 물리적 연결을 제공할 수 있다. 즉, 호스트 장치의 버스 포맷에 대응하여 융합형 반도체 장치(10)와의 인터페이싱을 제공할 수 있다. 호스트 장치의 버스 포맷은 시큐어 디지털(secure digital), USB(universal serial bus), MMC(multi-media card), eMMC(embedded MMC), PCMCIA(personal computer memory card international association), PATA(parallel advanced technology attachment), SATA(serial advanced technology attachment), SCSI(small computer system interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI Expresss), UFS(universal flash storage)와 같은 표준 인터페이스 프로토콜들 중 적어도 어느 하나를 포함할 수 있다.
부트 컨트롤러(120)는 융합형 반도체 장치(10)에 전원이 공급됨에 따라 프로세서 그룹(20) 내 각 프로세서(P0~Pm)의 부팅 동작을 제어하도록 구성될 수 있다.
프로세서(P0~Pm)를 부팅한다는 것은 융합형 반도체 장치(10)에 설치된 운영체제(operating system; OS)가 제어권을 가질 수 있도록 준비하는 과정이라 할 수 있다.
부팅 절차는 프로세서 초기화, 저장장치(150) 등 외부 디바이스 검사, 진단 및 초기화, 부트 코드를 각 단위 프로세서의 내부 메모리에 복사하고 운영체제를 시작하는 과정 등을 포함할 수 있다.
부트 컨트롤러(120)는 부팅 과정 중에 프로세서 그룹(20) 내의 각 단위 프로세서(P0~Pm)를 리셋 상태로 대기시킬 수 있다. 각 단위 프로세서(P0~Pm)의 리셋 상태에서 호스트 장치로부터 프로그램 코드 스케쥴링 정책 및 옵션이 전송됨에 따라, 부트 컨트롤러(120)는 각 단위 프로세서(P0~Pm)별로 스케쥴링된 프로그램 코드의 어드레스 정보를 전송할 수 있다. 일 실시예에서, 스케쥴링 정책은 전원 인가시 부트 컨트롤러(120)로 전송될 수 있고, 스케쥴링 정책이 변경되지 않는 동안은 전원 인가시 스케쥴링 정책의 옵션 정보만이 부트컨트롤러(120)로 전송될 수 있다. 스케쥴링 정책이 변경되는 경우 전원 인가시 호스트 장치로부터 부트컨트롤러(120)로 변경된 스케쥴링 정책이 전송됨은 물론이다.
DMA 컨트롤러(130)는 한 저장 장소의 데이터가 다른 저장 장소로 빠르게 자동으로 이동될 수 있도록 지원한다.
일 실시예에서, DMA 컨트롤러(130)는 각 단위 프로세서(P0~Pm)로부터 저장장치(150)의 특정 영역에 저장된 프로그램 코드를 해당 내부 메모리(IAM)에 전달하도록 지시받으면, 저장장치(150)의 지시받은 영역에 저장된 프로그램 코드를 해당 프로세서(P0~Pm)의 내부 메모리(IRAM)에 기록하고, 기록이 완료되었음을 프로세서(P0~Pm)에 통지할 수 있다.
이에 따라 프로세서는 자신의 내부 메모리(IRAM)에 저장된 프로그램 코드를 실행할 수 있다.
메모리 컨트롤러(140)는 호스트 장치의 제어에 따라, 또는 호스트 장치와 무관하게 저장장치(150)를 제어하기 위하여 저장장치(150)를 프로세서 그룹(20)에 연결해주는 역할을 한다.
메모리 컨트롤러(140)는 호스트 장치의 요청에 따라 데이터의 프로그램, 리드 등을 수행하도록 저장장치(1150)를 제어할 수 있다. 이를 위해 메모리 컨트롤러(140)는 커맨드 및 어드레스를 저장장치(1150)로 제공하고 저장장치(150)와 데이터를 송수신할 수 있다.
메모리 컨트롤러(140)는 호스트로 장치의 요청과 무관하게 자체적으로 커맨드, 어드레스 및 데이터를 생성하고, 이에 따라 저장장치(150)를 제어할 수도 있다.
메모리 컨트롤러(140)는 저장장치(150)를 제어하기 위한 펌웨어(firmware, FW)를 실행할 수 있다.
융합형 반도체 장치(10)를 구성하는 각 구성요소(20, 110, 120, 130, 140)는 단일 기판 상에 탑재될 수 있거나, 단일 칩으로 패키징될 수 있다.
일 실시예에서, 프로그램 코드의 스케쥴링 정책 및 옵션은 융합형 반도체 장치(10)의 운용 또는 사용 목적에 따라 호스트 장치를 통해 변경 가능하고, 변경된 스케쥴링 정책 및 옵션은 융합형 반도체 장치(10)의 부팅 과정 중에 호스트 장치가 부트 컨트롤러(120)로 스케쥴링 정책 및 옵션을 전송하는 것에 의해 용이하게 적용할 수 있다.
한정된 용량을 갖는 코드 저장용 메모리에 프로그램 코드를 저장해 두면 프로그램 코드를 변경하고자 할 때, 장치(10)로부터 전원을 제거하고 기 저장된 프로그램 코드 삭제, 새로운 프로그램 코드 저장, 장치의 재부팅 등의 과정이 수행되어야 하고, 이러한 과정은 프로그램 코드를 변경할 때마다 반복되어야 한다.
하지만, 본 기술에서와 같이 고용량의 저장 공간인 저장장치(150)에 복수의 프로그램 코드를 저장해 두고, 프로그램 코드 스케쥴링 정책과 옵션을 미리 설정해 두면 복수의 프로세서가 스케쥴링 정책 및 옵션에 따라 자신에게 할당된 프로그램 코드를 자신의 내부 메모리(IRMA)에 복사한 후 실행할 수 있다. 그리고 스케쥴링 정책 또는 옵션을 변경하는 것에 의해 프로세서에서 실행할 프로그램 코드를 간단하고 용이하게 변경할 수 있다.
도 3은 일 실시예에 의한 융합형 반도체 장치의 동작 방법을 설명하기 위한 흐름도이다.
본 기술을 위해 저장장치(150)의 코드 영역(1503)에 적어도 하나의 프로그램 코드를 저장하는 과정과, 호스트 장치에서 프로그램 코드의 운용 정책(스케쥴링 정책)을 설정하는 과정이 선행될 수 있다.
코드 영역(1503)에 적어도 하나의 프로그램 코드를 저장하기 위하여, 롬 라이터(ROM writer), JTAG(Joint Test Action Group)와 같은 직렬통신 인터페이스, BDM(Background Debug Mode)와 같은 인터페이스, 네트워크 인터페이스 등을 이용할 수 있으나 이에 한정되는 것은 아니다. 코드 영역(1503)에 적어도 하나의 프로그램 코드를 저장하는 주체는 호스트 장치, 또는 저장장치(150) 제조사의 컴퓨팅 장치, 또는 융합형 반도체 장치(10) 제조사의 컴퓨팅 장치일 수 있으나 이에 한정되는 것은 아니다.
한편, 호스트 장치는 코드 영역(1503)에 저장된 적어도 하나의 프로그램 코드에 대한 스케쥴링 정책을 미리 설정할 수 있다.
도 4는 일 실시예에 의한 스케쥴링 정책 정보를 설명하기 위한 도면이다.
도 4를 참조하면, 스케쥴링 정책 정보는 옵션 번호, 프로세서 ID, 코드 ID 및 어드레스 정보를 포함할 수 있다.
즉, 어떤 프로세서가(프로세서 ID) 어떤 프로그램 코드(코드 ID)를 사용할 것인지와, 코드 영역(1503) 내 해당 프로그램 코드의 저장 위치(어드레스 정보; 시작 어드레스(ADD_start)~마지막 어드레스(ADD_end))가 옵션 번호 별로 설정될 수 있다.
일 실시예에서, 호스트 장치는 복수의 단위 프로세서(P0~Pm)가 모두 동일한 프로그램 코드를 실행하도록 스케쥴링할 수 있다. 일 실시예에서, 호스트 장치는 복수의 프로세서(P0~Pm)를 지정된 개수로 나누어 복수의 프로세서 파트로 구분하고 각 프로세서 파트마다 각기 다른 프로그램 코드를 실행하도록 스케쥴링할 수 있다.
도 5는 일 실시예에 의한 스케쥴링 정책의 예를 설명하기 위한 도면이다.
저장장치(150)에 세 개의 프로그램 코드(코드0, 코드1, 코드2)가 저장될 수 있고, 단위 프로세서가 256개인 경우를 가정한다.
호스트 장치는 도 5에 도시한 것과 같이 프로그램 코드 운용 정책을 스케쥴링할 수 있다. 이러한 스케쥴링 정책 및 옵션 정보는 후술할 부팅 과정에서 부트 컨트롤러(120)로 전송될 수 있다.
도 5를 참조하면, 스케쥴링 정책의 옵션이 0인 경우, 코드 0은 프로세서(P0~P127)(프로세서 파트1)에서, 코드 1은 프로세서(P128~P192)(프로세서 파트2)에서, 코드 3은 프로세서(P193~P255)(프로세서 파트3)에서 실행되도록 스케쥴링할 수 있다. 스케쥴링 정책의 옵션이 1인 경우, 모든 프로세서(P0~P255)에서 코드 1을 실행할 수 있고, 옵션이 2 또는 3인 경우, 모든 프로세서(P0~P255)에서 코드 2 또는 코드 3을 실행할 수 있다.
각 프로그램 코드(코드0, 코드1, 코드2)의 저장 위치(시작 어드레스~마지막 어드레스)가 스케쥴링 정책 정보에 함께 저장되어 부트 컨트롤러(120)로 전달될 수 있다.
따라서, 도 5와 같은 스케쥴링 정책을 부트 컨트롤러(120)에 전송하여 저장해 두고 부팅시 옵션 정보를 부트 컨트롤러(120)로 전송하면, 부트 컨트롤러(120)는 옵션 정보에 해당하는 스케쥴링 정책에 따라 프로세서 별로 프로그램 코드 저장 위치를 제공할 수 있다.
도 6은 일 실시예에 의한 코드별 처리 부하량을 고려한 스케쥴링 예를 설명하기 위한 도면이다.
저장장치(150)에 세 개의 프로그램 코드(코드0, 코드1, 코드2)가 저장될 수 있고, 단위 프로세서가 500개인 경우를 가정한다.
호스트 장치는 복수의 프로세서(P0~P499) 각각이 실행할 프로그램 코드를 할당하는 코드 운용 정책을 스케쥴링하는 데 있어서, 프로그램 코드별 처리 부하량에 기초한 가중치를 고려할 수 있다. 즉, 각 프로세서 그룹(20)에서 실행될 수 있는 복수의 프로그램 코드 각각은 처리할 데이터의 양에 따라 처리 시간이 서로 다를 수 있다. 그러므로, 각 프로그램 코드별로 전체 처리 시간에 따른 가중치와 단위 프로세서(P0~P499)의 총 개수에 따라 몇 개의 프로세서가 어떤 프로그램 코드를 실행하도록 할지 스케쥴링할 수 있다.
도 6을 참조하면, 프로그램 코드 0의 경우 처리할 데이터의 양(절대값)이 1000이고, 데이터당 처리 시간이 2㎲이므로, 코드 1을 처리하는 데 필요한 전체 동작 시간은 2㎳가 된다. 코드 2의 경우 데이터의 양(절대값)이 2000이고, 데이터당 처리 시간이 0.5㎲이므로 전체 동작 시간은 1㎳가 된다. 데이터 양(절대값)이 3000이고 데이터당 처리 시간이 1㎲인 코드 3에 대한 전체 동작 시간은 3㎳가 된다.
따라서 코드 1, 2, 3에 대한 가중치는 각각 2/6, 1/6, 3/6이 될 수 있고, 전체 프로세서의 수가 500개이므로, 코드 0, 1, 2에 대해 각각 167개(프로세서 파트 4), 83개(프로세서 파트5), 250개(프로세서 파트6)의 프로세서를 할당할 수 있다.
이와 같이, 프로그램 코드를 프로세서에서 중복/분산시킬 것인지, 어떻게 분산시킬 것인지 결정하는 스케쥴링 정책이 호스트 장치에 의해 설정된 후, 도 3에 도시한 것과 같이, 장치(10)에 전원이 인가될 수 있다(S101).
전원이 인가됨에 따라, 부트 컨트롤러(120)는 프로세서 그룹(20) 내의 각 단위 프로세서(P0~Pm)을 리셋시키고(S103), 프로세서 그룹(20) 내 단위 프로세서(P0~Pm)는 리셋 상태로 대기할 수 있다(S105).
단위 프로세서(P0~Pm)가 리셋 상태에 있는 동안 호스트 장치는 부트 컨트롤러(120)로 기 설정된 스케쥴링 정책 및 그에 따른 옵션 정보를 전송할 수 있다(S107). 만약 이전 파워온시 스케쥴링 정책이 이미 전송되었고 스케쥴링 정책이 변경되지 않았다면, 단계 S107에서 호스트 장치는 부트 컨트롤러(120)로 옵션 정보만을 전송할 수 있다. 부트 컨트롤러(120)는 호스트 장치로부터 제공되는 스케쥴링 정보를 내부의 레지스터에 저장할 수 있다.
이후, 부트 컨트롤러(120)는 각 단위 프로세서(P0~Pm)의 리셋 상태를 해제(Release)할 수 있다(S109). 이어서, 단계 S107에서 수신한 옵션 정보에 기초하여 각 단위 프로세서(P0~Pm)가 접근할 부트 컨트롤러(120) 내 레지스터의 위치(어드레스)를 각 단위 프로세서(P0~Pm)로 전송한다(S111). 여기에서, 각 단위 프로세서(P0~Pm)가 접근할 레지스터에는 단위 프로세서(P0~Pm)별로 할당된 프로그램 코드 저장 어드레스가 저장되어 있을 수 있다.
각 단위 프로세서(P0~Pm)는 부트 컨트롤러(120)의 해당 레지스터 영역에서 프로그램 코드 저장 어드레스를 추출하고 이를 DMA 컨트롤러(130)로 전송하여 저장장치(150) 내 해당 어드레스 영역 내에 저장된 프로그램 코드를 자신의 내부 메모리(IRAM)에 전달하도록 지시할 수 있다(S113).
DMA 컨트롤러(130)는 단위 프로세서(P0~Pm)로부터 지시받은 영역에 접근하여 저장된 프로그램 코드를 출력하고(S115) 해당 프로세서(P0~Pm)의 내부 메모리(IRAM)에 저장한 후(S117), 데이터 이동 동작이 완료되었음을 프로세서(P0~Pm)에 통지할 수 있다. 그리고, 프로세서(P0~Pm)는 내부 메모리(IRAM)에 저장된 프로그램 코드를 순서대로 실행하게 된다.
각 프로세서(P0~Pm)에서 실행할 프로그램 코드를 변경하고자 하는 경우에는 스케쥴링 정책을 변경하여 부트 컨트롤러(120)에 반영하거나, 부팅 과정에서 스케쥴링 옵션 정보를 변경하여 부트 컨트롤러(120)로 전달할 수 있다.
이와 같이, 저장장치(150)에 복수의 프로그램 코드를 저장해 두고, 호스트장치에서 생성한 코드 운용 정책에 따라 부트 컨트롤러를 제어할 수 있다. 부트 컨트롤러는 호스트 장치로부터 제공된 스케쥴링 정책에 따라 프로그램 코드 저장 영역을 프로세서 별로 알려 주고, 프로세서는 DMA 컨트롤러(130)를 통해 저장장치(150)의 해당 위치에 저장된 프로그램 코드를 자신의 내부 메모리(IRAM)로 복사하여 실행할 수 있다.
초기에 저장장치(150)에 복수의 프로그램 코드를 저장해 둘 수 있고, 호스트 장치에서 스케쥴링 정책을 변경하는 것만으로 프로세서들이 실행할 프로그램 코드를 간단하게 변경할 수 있다.
도 7 내지 도 9는 실시예들에 의한 적층형 메모리 장치의 구성도이다.
도 7은 일 실시예에 의한 적층형 메모리 장치의 구성도이다.
일 실시예에 의한 적층형 메모리 장치(30)는 복수의 다이가 적층된 적층 구조체(310)를 포함할 수 있다. 적층 구조체(310)는 복수의 다이를 적층하고, 관통 전극(TSV, Through Silicon Via)을 통해 전기적으로 연결시킴으로써 입/출력 유닛의 수를 늘려 대역폭(Bandwidth)을 증가시킨 HBM(High Bandwidth Memory) 형태로 구성될 수 있다.
적층 구조체(310)는 베이스 다이(Base Die)(314) 및 복수의 코어 다이(Core Die)(312)를 포함할 수 있다.
복수의 코어 다이(312)는 베이스 다이(314) 상에 적층될 수 있으며, 관통 전극(TSV)을 통해 서로 연결될 수 있다. 코어 다이(312) 각각에는 데이터를 저장하기 위한 메모리 셀들 및 메모리 셀의 코어 동작을 위한 회로들이 배치될 수 있다.
코어 다이(312)는 관통전극(TSV)을 통해 베이스 다이(314)와 전기적으로 접속되어, 관통전극(TSV)을 통해 베이스 다이(314)로부터 신호 및 전원 등을 제공받을 수 있다.
베이스 다이(314) 예를 들어 도 1 및 도 2에 도시한 것과 같은 컨트롤러(100)를 포함할 수 있다. 베이스 다이(314)는 적층형 메모리 장치(30) 내의 다양한 기능, 예를 들어, 메모리 셀들의 전력 관리 및 리프레쉬와 같은 메모리 관리 기능 혹은 코어 다이(312)와 컨트롤러(100) 간의 타이밍조절 기능들을 수행할 수 있다.
베이스 다이(314)에 구비되는 물리 영역(PHY)은 어드레스, 명령어, 데이터, 제어신호 등의 입출력 영역일 수 있다. 물리 영역(PHY)에는 적층형 메모리 장치(30)에 요구되는 데이터 처리 속도를 만족시킬 수 있는 수만큼의 입출력 회로부가 구비될 수 있다. 그리고 베이스 다이(314)의 배면 중 물리 영역(PHY) 부분에는 입출력 동작시 필요한 신호 및 전원을 공급받을 수 있도록 복수의 입출력 단자와 전원공급 단자가 구비될 수 있다.
도 8은 일 실시예에 의한 적층형 메모리 장치의 구성도이다.
도 8을 참조하면, 적층형 메모리 장치(300)는 복수의 코어 다이(312)와 베이스 다이(314)의 적층 구조체(310), 메모리 컨트롤러(320) 및 인터페이스 기판(330)을 포함할 수 있다.
베이스 다이(314)는 코어 다이(312)와 메모리 컨트롤러(320) 간의 인터페이스를 위한 회로가 실장될 수 있다. 적층 구조체(310)는 도 7을 참조하여 설명한 것과 유사한 구조를 가질 수 있다.
적층 구조체(310)와 메모리 컨트롤러(320)는 인터페이스 기판(330)을 통해 각각의 물리 영역(PHY)이 연결될 수 있다. 인터페이스 기판(330)은 인터포저(Interposer)가 지칭될 수 있다.
도 9는 일 실시예에 의한 적층형 메모리 장치의 구성도이다.
도 9에 도시한 적층형 메모리 장치(3000)는 도 8에 도시한 적층형 메모리 장치(30)를 패키지 기판(340) 상에 배치한 것으로 이해할 수 있다.
패키지 기판(340)과 인터페이스 기판(330)은 접속단자를 통해 전기적으로 접속될 수 있다.
인터페이스 기판(330) 상에 도 7에 도시한 것과 같은 적층 구조체(310) 및 메모리 컨트롤러(320)를 적층하고, 이를 패키지 기판(340)에 장착한 후 패키징하므로써 시스템 인 패키지(System In Package; SiP) 타입의 반도체 장치를 구현할 수 있다.
도 10은 일 실시예에 의한 네트워크 시스템의 구성도이다.
도 10을 참조하면, 네트워크 시스템(5000)은 네트워크(5500)를 통해서 연결된 서버 시스템(5300) 및 복수의 클라이언트 시스템들(5410~5430)을 포함할 수 있다.
서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로 데이터를 제공할 수 있다.
서버 시스템(5300)은 호스트 장치(5100) 및 메모리 시스템(5200)을 포함할 수 있다. 메모리 시스템(5200)은 도 1 및 도 2에 도시한 의 데이터 저장 장치(10), 로 구성될 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 융합형 반도체 장치
20 : 프로세서 그룹
110 : 호스트 인터페이스
120 : 부트 컨트롤러
130 : DMA 컨트롤러
140 : 메모리 컨트롤러
150 : 저장장치
IRAM : 내부 메모리

Claims (17)

  1. 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치;
    복수의 단위 프로세서를 구비하며, 상기 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹; 및
    상기 호스트 장치로부터 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 제공받아, 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하도록 구성되는 부트 컨트롤러;
    를 포함하는 융합형 반도체 장치.
  2. 제 1 항에 있어서,
    상기 부트 컨트롤러는 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서 각각에 할당된 프로그램 코드 저장 어드레스를 상기 복수의 단위 프로세서 각각으로 전달하도록 구성되는 융합형 반도체 장치.
  3. 제 1 항에 있어서,
    상기 프로세서로부터 상기 프로그램 코드 저장 어드레스를 제공받아 상기 저장장치에 접근하여 상기 프로그램 코드를 출력하고 상기 내부 메모리에 저장하도록 구성되는 DMA 컨트롤러를 더 포함하도록 구성되는 융합형 반도체 장치.
  4. 제 1 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 중 어느 하나를 상기 복수의 단위 프로세서가 공통으로 실행하도록 하는 정책을 포함하는 융합형 반도체 장치.
  5. 제 1 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 각각을 복수의 단위 프로세서에서 분산 실행하도록 하는 정책을 포함하는 융합형 반도체 장치.
  6. 제 5 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 각각에 대한 처리 부하량에 기초한 가중치에 기초하여 결정되는 단위 프로세서의 개수를 포함하도록 구성되는 융합형 반도체 장치.
  7. 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치와, 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹을 포함하는 컨트롤러를 구비하는 융합형 반도체 장치의 동작 방법으로서,
    상기 컨트롤러가 상기 호스트 장치로부터 상기 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 수신하는 단계; 및
    상기 컨트롤러가 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하는 단계;
    를 포함하도록 구성되는 융합형 반도체 장치의 동작 방법.
  8. 제 7 항에 있어서,
    상기 스케쥴링 정책은 부팅 과정 중 상기 프로세서가 리셋 상태에 있는 동안 수신되는 반도체 장치의 동작 방법.
  9. 제 7 항에 있어서,
    상기 단위 프로세서를 제어하는 단계는, 상기 컨트롤러가 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서 각각에 할당된 프로그램 코드 저장 어드레스를 상기 복수의 단위 프로세서 각각으로 전달하는 단계를 포함하는 융합형 반도체 장치의 동작 방법.
  10. 제 7 항에 있어서,
    상기 컨트롤러는 DMA 컨트롤러를 더 포함하고,
    상기 단위 프로세서를 제어하는 단계는, 상기 DMA 컨트롤러가 상기 복수의 단위 프로세서 각각으로부터 상기 프로그램 코드 저장 어드레스를 제공받아 상기 저장장치에 접근하여 상기 프로그램 코드를 출력하고 상기 내부 메모리에 저장하는 단계를 포함하는 융합형 반도체 장치의 동작 방법.
  11. 제 7 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 중 어느 하나를 상기 복수의 단위 프로세서가 공통으로 실행하도록 하는 정책을 포함하는 융합형 반도체 장치의 동작 방법.
  12. 제 7 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 각각을 복수의 단위 프로세서에서 분산 실행하도록 하는 정책을 포함하는 융합형 반도체 장치의 동작 방법.
  13. 제 12 항에 있어서,
    상기 스케쥴링 정책은 복수의 프로그램 코드 각각에 대한 처리 부하량에 기초한 가중치에 기초하여 결정되는 단위 프로세서의 개수를 포함하도록 구성되는 융합형 반도체 장치의 동작 방법.
  14. 베이스 다이 및 상기 베이스 다이 상에 적층되는 복수의 코어 다이가 복수의 관통 전극을 통해 신호 전송이 가능하도록 적층되며,
    상기 복수의 코어 다이 중 적어도 하나는 사용자 데이터 저장 영역 및 코드 영역을 포함하고, 호스트 장치로부터 제공되는 적어도 하나의 프로그램 코드를 상기 코드 영역에 저장하는 저장장치를 구비하고,
    상기 베이스 다이는, 복수의 단위 프로세서를 구비하며, 상기 복수의 단위 프로세서 각각이 내부 메모리를 구비하도록 구성되는 프로세서 그룹; 및 상기 호스트 장치로부터 복수의 단위 프로세서별로 실행할 프로그램 코드에 대한 스케쥴링 정책을 제공받아, 상기 스케쥴링 정책에 기초하여 상기 복수의 단위 프로세서가 할당된 프로그램 코드를 실행하도록 제어하도록 구성되는 부트 컨트롤러;
    를 포함하도록 구성되는 적층형 메모리 장치.
  15. 제 14 항에 있어서,
    전면에 컨트롤러 및 상기 베이스 다이가 적층되는 인터페이스 기판을 더 포함하도록 구성되는 적층형 메모리 장치.
  16. 제 15 항에 있어서,
    전면에 상기 인터페이스 기판이 적층되는 패키지 기판을 더 포함하도록 구성되는 적층형 메모리 장치.
  17. 제 14 항에 있어서,
    전면에 컨트롤러 및 상기 베이스 다이가 적층되는 인터페이스 기판; 및
    전면에 상기 인터페이스 기판이 적층되는 패키지 기판;
    을 더 포함하도록 구성되는 적층형 메모리 장치.
KR1020180073874A 2018-06-27 2018-06-27 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 KR102569435B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180073874A KR102569435B1 (ko) 2018-06-27 2018-06-27 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치
US16/270,450 US11068283B2 (en) 2018-06-27 2019-02-07 Semiconductor apparatus, operation method thereof, and stacked memory apparatus having the same
CN201910181929.1A CN110647359B (zh) 2018-06-27 2019-03-11 半导体装置、其操作方法和具有其的层叠存储装置

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20200001208A true KR20200001208A (ko) 2020-01-06
KR102569435B1 KR102569435B1 (ko) 2023-08-24

Family

ID=69008121

Family Applications (1)

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

Country Status (3)

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

Families Citing this family (3)

* 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 讯牧信息科技(上海)有限公司 多处理器系统及其启动方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20160118836A (ko) * 2015-04-03 2016-10-12 에스케이하이닉스 주식회사 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법
KR20160147952A (ko) * 2014-04-29 2016-12-23 샌디스크 테크놀로지스 엘엘씨 전력 사용량에 기초한 비휘발성 메모리 시스템에서의 커맨드 실행의 쓰로틀링

Family Cites Families (19)

* 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
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 삼성전자주식회사 내부 메모리만을 가지는 시스템의 부팅 장치 및 방법
US7493468B2 (en) * 2006-06-01 2009-02-17 International Business Machines Corporation Method for broadcasting instructions/data to a plurality of processors in a multiprocessor device via aliasing
US20080163183A1 (en) * 2006-12-29 2008-07-03 Zhiyuan Li Methods and apparatus to provide parameterized offloading on multiprocessor architectures
CN101030148A (zh) * 2007-03-09 2007-09-05 华为技术有限公司 实现重映射的方法、装置
CN101593096B (zh) * 2009-05-22 2011-11-16 西安交通大学 一种共享寄存器相关性消除的实现方法
US8359435B2 (en) * 2009-12-16 2013-01-22 International Business Machines Corporation Optimization of software instruction cache by line re-ordering
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
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 情報処理装置および画像形成装置
WO2013016299A1 (en) * 2011-07-22 2013-01-31 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
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20160147952A (ko) * 2014-04-29 2016-12-23 샌디스크 테크놀로지스 엘엘씨 전력 사용량에 기초한 비휘발성 메모리 시스템에서의 커맨드 실행의 쓰로틀링
KR20160118836A (ko) * 2015-04-03 2016-10-12 에스케이하이닉스 주식회사 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
US11775455B2 (en) Storage device for interfacing with host and method of operating the host and the storage device
CN111176553B (zh) 固态驱动器中的带宽限制
KR102365312B1 (ko) 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법
US10866737B2 (en) Apparatus, method and system to store information for a solid state drive
KR20160096279A (ko) 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
US20160062659A1 (en) Virtual memory module
KR102569435B1 (ko) 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치
CN109284241A (zh) 存储等待时间信息的存储设备、处理器和计算系统
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
US20230229357A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US20190354483A1 (en) Controller and memory system including the same
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
CN115114013A (zh) 高速外围组件互连装置及其操作方法
US20150326684A1 (en) System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access
EP4148572B1 (en) Computational storage device and storage system including the computational storage device
KR20150116627A (ko) 컨트롤러 및 그것을 포함하는 데이터 저장 장치
US20220137998A1 (en) Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same
Gouk et al. Enabling realistic logical device interface and driver for nvm express enabled full system simulations
WO2023287407A1 (en) Hardware component initialization
US20140059224A1 (en) Functional device, access system, and communication establishing method
US20220004418A1 (en) Memory system and operating method thereof
KR20230092227A (ko) 멀티코어 프로세서 및 스토리지 장치
CN114185480A (zh) 存储器系统和数据处理系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right