KR20150042220A - 메타데이터 관리를 갖는 적층형 메모리 디바이스 - Google Patents

메타데이터 관리를 갖는 적층형 메모리 디바이스 Download PDF

Info

Publication number
KR20150042220A
KR20150042220A KR1020157005299A KR20157005299A KR20150042220A KR 20150042220 A KR20150042220 A KR 20150042220A KR 1020157005299 A KR1020157005299 A KR 1020157005299A KR 20157005299 A KR20157005299 A KR 20157005299A KR 20150042220 A KR20150042220 A KR 20150042220A
Authority
KR
South Korea
Prior art keywords
memory
metadata
layers
stored
manager
Prior art date
Application number
KR1020157005299A
Other languages
English (en)
Other versions
KR101931297B1 (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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20150042220A publication Critical patent/KR20150042220A/ko
Application granted granted Critical
Publication of KR101931297B1 publication Critical patent/KR101931297B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

프로세스 시스템(100)은 하나 또는 이상의 프로세스 디바이스(104)들 및 적층형 메모리 계층들(120)의 집합 및 하나 또는 이상의 논리 계층들(122)의 집합을 갖는 적층형 메모리 디바이스(102)에 연결된 다른 시스템 구성요소를 포함한다. 논리 계층들의 집합은 다른 시스템 구성요소로부터 메타데이터 관리를 오프로드하는 메타데이터 관리자(134)를 구현한다. 논리 계층들의 집합은 또한 적층형 메모리 계층들의 집합에 구현되며 적층형 메모리 디바이스 외부의 디바이스에 연결 가능한 메모리 셀 회로(126)에 연결된 메모리 인터페이스(130)를 포함한다. 메모리 인터페이스는 외부 디바이스들 및 메타데이터 관리자를 위한 메모리 접근들을 수행하기 위해 동작한다. 메타데이터 관리자의 적층형 메모리 계층들과의 긴밀한 통합 덕분에, 메타데이터 관리자는 외부 디바이스들에 의해 수행될 수 있는 것보다 더 효율적인 특정한 메모리- 강화 메타데이터 관리 연산을 수행할 수 있다.

Description

메타데이터 관리를 갖는 적층형 메모리 디바이스{STACKED MEMORY DEVICE WITH METADATA MANAGEMENT}
본 발명은 메모리 디바이스에 관한 것이며, 더 구체적으로는 적층형 메모리 디바이스에 관한 것이다.
메모리 대역폭과 지연시간은 많은 프로세스 시스템들에서 중요한 성능 병목현상(bottleneck)들이다. 이런 성능 계수들은 다층으로 적층형 메모리와 연결된 실리콘 관통 전극(through-silicon vias)들의 사용을 통해 늘어난 대역폭과 줄어든 디바이스내(intra-device) 지연시간을 제공하는 적층형의, 또는 삼-차원(3D), 메모리의 사용을 통해 다소 개선될 수 있다. 그러나, 시스템 메모리 및 다른 큰-스케일의 메모리는 일반적으로 시스템의 다른 구성요소들로부터 분리되어 구현된다. 3D 적층형 메모리를 구현하는 시스템은 그러므로 3D 적층형 메모리를 다른 구성요소들에 연결하는 내부 연결의 대역폭에 의해 제한된 대역폭을 유지할 수 있고 상대적으로 긴 내부 연결에서 전파되는 신호의 전파 지연과 그런 신호를 전도하기 위해 필요한 핸드쉐이킹 프로세스에 의해 제한된 지연시간을 유지할 수 있다. 각 접근이 3D 적층형 메모리와의 사이에서 주고받는 통신을 요구하며 따라서 디바이스간(inter-device) 대역폭과 지연시간의 페널티가 각 접근당 두번 발생하므로, 수행된 임무가 3D 적층형 메모리로의 다중 접근을 요구할 때 디바이스 내의 대역폭과 디바이스 내의 지연시간은 시스템의 프로세스 효율과 전력 소모량에 특별한 영향을 미친다.
본 발명은 수반되는 도면을 참조함으로써 더 잘 이해되며, 이의 다양한 특징과 장점이 당업자에게 명확하게 될 것이다.
도 1은 본 발명의 적어도 하나의 실시예에 따라 수직-층 구성인 메타데이터 관리자를 구비하는 프로세스 시스템을 예시하는 분해 사시도이다.
도 2는 본 발명의 적어도 하나의 실시예에 따라 사이드-스플릿 구성인 도 1의 프로세스 시스템의 대안적인 구현을 예시하는 단면도이다.
도 3은 본 발명의 적어도 하나의 실시예에 따라 더 상세한 도 1의 프로세스 시스템을 예시하는 블럭도이다.
도 4는 본 발명의 적어도 하나의 실시예에 따라 메모리 접근 요구에 응답하여 메타데이터 관리 연산을 수행하는 방법을 예시하는 흐름도이다.
도 5는 본 발명의 적어도 하나의 실시예에 따라 메타데이터 명령에 응답하여 메타데이터 연산을 수행하는 방법을 예시하는 흐름도이다.
도 6은 본 발명의 적어도 하나의 실시예에 따라 적층형 메모리 디바이스로부터 메타데이터를 제공하는 방법을 예시하는 흐름도이다.
도 7은 본 발명의 적어도 하나의 실시예에 따라 가상-물리 주소 변환의 수행을 위한 메타데이터 관리 연산예를 예시한다.
도 8은 본 발명의 적어도 하나의 실시예에 따라 메모리 활용 감시를 위한 메타데이터 관리 연산예를 예시한다.
도 9는 본 발명의 적어도 하나의 실시예에 따라 메모리 로깅을 위한 메타데이터 관리 연산예를 예시한다.
도 10은 본 발명의 적어도 하나의 실시예에 따라 오류 검출 값 계산을 위한 메타데이터 관리 연산예를 예시한다.
도 11은 본 발명의 적어도 하나의 실시예에 따라 오류 검출 값 검증을 위한 메타데이터 관리 연산예를 예시한다.
도 12는 본 발명의 적어도 하나의 실시예에 따라 가비지 컬렉션(garbage collection) 마크 프로세스를 위한 메타데이터 관리 연산예를 예시한다.
도 13은 본 발명의 적어도 하나의 실시예에 따라 다른 가비지 컬렉션 마크 프로세스를위한 메타데이터 관리 연산예를 예시한다.
도 14는 본 발명의 적어도 하나의 실시예에 따라 적층형 메모리와 메타데이터 관리자를 구현하는 집적회로(integrated circuit: IC)를 설계하고 제작하는 방법의 흐름도를 예시한다.
다른 도면의 같은 참조 부호의 사용은 비슷하거나 동일한 아이템을 나타낸다.
도 1 내지 14는 적층형 메모리 디바이스의 메모리 셀 회로에 저장된 연산 데이터에 대한 메타데이터 관리를 오프로드하기 위해 집적된 메타데이터 관리자를 구현하는 적층형 메모리 디바이스의 사용을 통해 프로세스 시스템의 개선된 프로세스 효율과 감소한 전력 소모를 위한 기술예들을 예시한다. 적층형 메모리 디바이스는 적층형 메모리 계층들의 집합과 하나 또는 이상의 논리적 계층들의 집합을 포함하며, 하나 또는 이상의 논리적 계층은 메타데이터 관리자와 메모리 인터페이스를 구현한다. 메모리 인터페이스는 메모리 셀 회로에 연결되어 있고 적층형 메모리 디바이스 외부의 하나 또는 이상의 디바이스들에 연결될 수 있다. 메모리 인터페이스는 메타데이터 관리자와 하나 또는 이상의 외부 디바이스들 모두로부터의 메모리 접근 요구들에 응답하여 메모리 접근들을 수행하기 위해 연산한다. 메타데이터 관리자는 저장된 연산 데이터와 연관되며 적층형 메모리 디바이스에 저장된 메타데이터에 대해 하나 또는 이상의 메타데이터 관리 연산들을 수행하기 위한 로직을 포함한다. 그런 메타데이터 관리 연산들의 예는, 한정되지는 않으나, 주소 변환 연산, 데이터 보안성 또는 데이터 무결성 연산들(예를 들어, 체크섬 또는 오류 교정 코드 계산, 또는 검증), 가비지 콜렉션 연산들, 메모리 활용 프로파일링, 메모리 로깅, 등을 포함한다. 메타데이터 관리자의 메모리 계층과의 단단한 연결에 의해, 메타데이터 관리자는 외부 디바이스와 비교할때 더 넓은 대역폭과 낮은 지연시간과 전력 소비를 갖는 메모리 계층에 저장된 메타데이터에 접근할 수 있다. 게다가, 적층형 메모리 디바이스에 메타데이터 관리를 오프로드하는 것은 외부 디바이스들로 하여금 연산 데이터에 집중하여 다른 임무를 수행하는 것을 허용하며, 그렇게 함으로써 시스템의 전반적인 프로세스량이 증가한다.
본 출원에서 사용되는 용어 "연산 데이터(operational data)"는, 연산의 수행에서 연산 시스템, 하이퍼바이저, 또는 소프트웨어 어플리케이션을 대신하여 시스템의 디바이스에 의해 사용되는 데이터를 의미한다. 이 곳에서 사용되는 용어"메타데이터(metadata)"는 특성, 식별자, 또는 상응하는 연산 데이터의 시스템 사용의 표현을 설명하는 데이터를 의미한다. 연산 데이터의 예는 지시 데이터 및 피연산 데이터를 포함한다. 메타데이터의 예는 패러티 비트들, 체크섬들, 및 오류 교정 코드들(error correcting codes: ECCs), 주소 변환 정보(예를들면, 페이지 테이블 엔트리 및 변환 색인 버퍼 엔트리), 상태 식별자들(예를 들면, 더티 비트들, 유효 비트들, 도달 가능 비트들), 등과 같은 무결성/보안성 정보를 포함한다. 좀더 일반적으로, 연산 데이터는 저장되기 위해 적층형 메모리 디바이스에 제공된 데이터이고, 메타데이터는 적층형 메모리 디바이스에 의해 저장된 연산 데이터를 접근, 특성화, 또는 수정하기 위해 사용되는 데이터이다.
도 1은 본 발명의 적어도 하나의 실시예에 따른 프로세스 시스템(100)을 도시한다. 프로세스 시스템(100)은 노트북 또는 태블릿 컴퓨터, 데스크탑 컴퓨터, 서버, 네트워크 라우터, 스위치, 또는 허브, 컴퓨팅 가능한 핸드폰, 개인 휴대 정보 단말기 등을 포함하는 다양한 컴퓨터 시스템들을 포함할 수 있다. 도시된 예에서, 프로세스 시스템(100)은 적층형 메모리 디바이스(102)와 디바이스간 인터커넥트(106)을 통해 접속된 적어도 하나인 외부 디바이스(104)를 포함한다. 프로세스 시스템(100)은 또한 하나 또는 이상의 디스플레이 구성들, 저장 디바이스들, 입력 디바이스들 (예를 들면, 마우스 또는 키보드) 등과 같이 도 1에 도시되지 않은 다양한 구성들을 포함할 수 있다. 프로세스 시스템(100)은 디바이스간 인터커넥트(106)를 통해 적층형 메모리 디바이스(102)와 연결된 다수의 외부 디바이스(104)들을 포함할 수 있으나, 이곳에서는 묘사의 편의를 위해 하나의 외부 디바이스(104)로 구현되는 예가 도시된다. 일 실시예에서, 외부 디바이스(104)는 집적 회로(IC) 패키지(103)로 구현되며 적층형 메모리 디바이스 (102)는 외부 디바이스(104)를 구현하는 집적 회로 패키지(103)로부터 분리되는 집적 회로 패키지(105)로 구현된다. 다른 일 실시예에서, 외부 디바이스(104)와 적층형 메모리 디바이스(102)는 같은 같은 집적 회로 패키지에 인터보저를 통해 연결된 다이들의 별개 집합들로 구현된다. 어떤 경우에도, 외부 디바이스(104)는 적층형 메모리 디바이스(102)에 대해 "외부(external)"이다.
예시된 예에서, 외부 디바이스(104)는 어떤 종류의 디바이스도 될 수 있지만, 외부 디바이스(104)는 프로세스 디바이스이다. 이 예에서, 외부 디바이스는 , 예를 들면 프로세스 코어들(108 및 110), 노쓰브리지(northbridge)(112), 및 주변 컴포넌트(114)들과 같은 하나 또는 이상의 프로세스 코어들을 포함한다. 프로세스 코어들(108 및 110)은 예를 들면, 중앙 프로세스 유닛(CPU) 코어, 그래픽 프로세스 유닛(GPU), 디지탈 신호 프로세스(DSP), 등과 같은 다양한 종류의 프로세스 코어들과 그들의 조합을 포함할 수 있다. 주변 컴포넌트들(114)은 예를 들면, 집적된 사우쓰브리지(southbridge) 또는 입/출력 제어기, 하나 또는 이상의 레벨3(L3) 캐시들, 등을 포함할 수 있다. 노쓰브리지(112)는 디바이스간 인터커넥트(106)의 전도체에 연결된 물리적 인터페이스(PHY)를 포함하는 메모리 제어 인터페이스(116)을 포함하거나 연관되어 있다.
디바이스간 인터커넥트(106)는 PCI-E(Periheral Component Interconnect-Express)아키텍쳐, 하이퍼전송 아키텍쳐, QPI(QuickPath Interconnect), 등과 같이 다양한 종래의 인터커넥트 또는 버스 아키텍쳐들에 따라 구현될 수 있다. 대안적으로, 디바이스간 인터커넥트(106)는 소유된 버스 아키텍쳐에 따라 구현될 수 있다. 디바이스간 인터커넥트(106)는 외부 디바이스(104)의 메모리 인터페이스(116)의 송신/수신 회로를 적층형 메모리 디바이스(102)의 메모리 인터페이스(130)의 송신/수신 회로와 연결하는 복수의 전도체들을 포함한다. 전도체들은 인쇄 회로 기판(printed circuit board: PCB) 트레이스들 또는 케이블 선들, 광 섬유와 같은 광 전도체들, 또는 이들의 조합과 같은 전기적 전도체들을 포함할 수 있다.
적층형 메모리 디바이스(102)는, 이에 국한되지 않으나, 동적 랜덤 접근 메모리(DRAM) 및 정적 랜덤 접근 메모리 (SRAM)과 같은 휘발성 메모리 아키텍쳐들, 또는 판독-전용 메모리(ROM), 플래시 메모리, 강유전체 램(F-RAM), 자기 저항 램 등과 같은 비-휘발성 메모리 아키텍쳐들을 포함하는 다양한 메모리 셀 아키텍쳐를 구현할 수 있다. 설명의 편의를 위해, 적층형 메모리 디바이스(102)의 구현예들은 이 예에서 동적 랜덤 접근 메모리아키텍쳐의 내용으로써 한정되지 않도록 설명된다.
분해 사시도에 설명되어 있듯이, 적층형 메모리 디바이스(102)는 적층형 메모리 계층들의 집합(120)과 하나 또는 이상의 논리 계층들의 집합(122)을 포함한다. 각 메모리 계층(120)은 적층형 메모리 디바이스(102)의 메모리 아키텍쳐에 따른 비트셀들을 구현하는 메모리 셀 회로(126)를 포함하며 주변 논리 회로(128)는 이 메모리 아키텍쳐에 따른 비트셀들의 접근과 유지를 지원하기 위해 논리 및 다른 회로를 구현한다. 예시를 위해, 동적 랜덤 접근 메모리는 여러개의 랭크들로 구성되며, 각각의 랭크는 복수의 뱅크들을 포함하고 각각의 뱅크는 행들과 열들로 정렬된 비트셀들의 행렬을 포함한다. 따라서, 일 실시예에서, 각 메모리 계층(120)은 하나의 랭크(그리고 상응하는 랭크에 대한 비트셀들의 뱅크들)를 구현할 수 있다. 또 다른 실시예에서, 동적 랜덤 접근 메모리 랭크들 각각은 다수의 메모리 계층들(120)을 가로질러 구현될 수 있다. 예를 들면, 적층형 메모리 디바이스(102)는 4개의 랭크들을 구현하며, 각 랭크는 상응하는 각 메모리 계층(120)의 사분면에 구현될 수 있다. 둘 중 어느 하나의 구현에서, 동적 랜덤 접근 메모리 비트셀들의 접근과 유지를 지원하기 위해, 주변 논리 회로(128)는, 예를 들면, 라인 드라이버들, 비트라인/단어라인 프리차징 회로, 리프레쉬 회로, 행 디코더들, 열 선택 논리, 행 버퍼들, 감지 증폭기들, 등을 포함할 수 있다.
하나 또는 이상의 논리 계층들(122)은 적층형 메모리 디바이스(102)의 메모리에 접근을 가능하게 하기 위한 로직을 구현한다. 이 논리는 예를 들면, 메모리 인터페이스(130), BIST(built-in self test) 논리 (131), 등을 포함한다. 메모리 인터페이스(130)는 예를 들면, 수신기들과 라인 드라이버들, 메모리 요구 버퍼들, 스케쥴링 논리, 행/열 디코드 논리, 리프레쉬 논리, 데이터-입력 및 데이터-출력 버퍼들, 클럭 생성기들, 등을 포함할 수 있다. 예시된 실시예가 외부 디바이스(104)에 구현된 메모리 제어기(116)를 묘사하지만, 다른 실시예에서, 메모리 제어기는 메모리 인터페이스(130)에 대신 구현될 수 있다. 메모리 인터페이스(130)는 디바이스간 인터커넥트(106)의 전도체들과 연결가능한 물리적 인터페이스로 구성되는 버스 인터페이스(132)를 더 포함할 수 있고, 따라서 외부 디바이스(104)와 연결 가능하다.
메모리 계층들(120)에 의해 구현된 메모리에 접속을 가능하게 하는 로직을 구현하는 것에 더하여, 하나 또는 이상의 논리 계층들(122)은 외부 디바이스(104) 또는 프로세스 시스템(102)의 다른 외부 컴포넌트를 위해 적층형 메모리 디바이스(102)에 저장된 연산 데이터와 관련하여 적층형 메모리 디바이스(102)에 유지되는 메타데이터에 기초하여 메타데이터 관리 연산들을 수행하는 메타데이터 관리자(134)를 구현한다. 메타데이터 관리자(134)는 메모리 인터페이스(130)에 연결되어 있고, 적층형 메모리 디바이스(102)에 저장된 연산 데이터에 관련하여 적층형 메모리 디바이스(102)에 메타데이터에 기초하여 하나 또는 이상의 메타데이터 관리 연산을 수행하는 로직을 포함한다. 메타데이터 관리자(134)는 메타데이터를 저장하기 위해 하나 또는 이상의 논리 계층들(122)에 위치하는 저장 요소들(예를 들면, 레지스터들, 캐시들, 또는 내용 연상 기억 컴포넌트들)을 포함하거나, 메모리 셀 회로(126)는 메타데이터를 저장할 수 있으며, 또는 메타데이터의 일정 부분들은 다른 부분들이 메모리 셀 회로(126)에 저장되는 동안 논리 계층들(122)의 저장 요소들에 저장될 수 있다. 메모리 셀 회로(126)에 저장된 메타데이터에 대해, 어떤 메타데이터는 상응하는 연산 데이터(예를 들면, 특정 한 경우들에서, 체크섬 데이터가 상응하는 연산 데이터를 저장하기 위해 사용된 곳과 같은 메모리 장소에 저장될 수 있다)와 함께 저장될 수 있는 반면에, 다른 경우들에서 메타데이터는 상응하는 연산 데이터와 분리되어 저장될 수 있다(예를 들면, 오류 교정 코드 데이터는 상응하는 연산 데이터를 저장하는 메모리 장소로부터 분리된 오류 교정 코드 어레이에 저장될 수 있다). 더하여, 일 실시예에서, 메타데이터 관리자(134)는 플래시 메모리와 같은 비-휘발성 메모리(NVM)를 로직 계층(122) 또는 메모리 계층(120)에 전원이 꺼진 뒤에 특정 메타데이터를 유지하기 위해 구비할 수 있다.
설명된 예에서, 메타데이터 관리자(134) 및 메모리 인터페이스(130)는 같은 논리 계층(122)에 구현된다. 다른 실시예에서, 메모리 인터페이스(130)와 메타데이터 관리자(134)는 다른 논리 계층들에 구현될 수 있다. 예를 들면, 메모리 인터페이스(130)는 하나의 논리 계층(122)에 구현될 수 있으며 메타데이터 관리자(134)는 다른 논리 계층(122)에 구현될 수 있다. 또 다른 실시예에서, 메모리 인터페이스(130) 및 메타데이터 관리자(134) 중 하나 또는 둘 모두는 다수의 논리 계층을 가로질러 구현될 수 있다. 설명을 위해, 메모리 인터페이스(130)과 메타 관리자(134)의 논리 회로는 하나의 논리 계층(122) 에 구현되며 메타데이터 관리자(134)의 특정한 저장 요소들(예를 들면, 캐시 또는 연상 기억 컴포넌트)은 다른 논리 계층(122)에 구현될 수 있다.
도 1의 에서 설명된 구현에서, 적층형 메모리 디바이스(102)는 수직 적층 배열로 구현되며 이에 의해 전력과 신호가 논리 계층들(122) 및 메모리 계층들(120) 사이에서 밀집된 실리콘 관통 전극들 (150) 또는 다른 수직 인터커넥트들을 사용하여 전송된다. 도 1이 실리콘 관통 전극들(150)을 중앙에 집중된 행들의 집합으로 도시하나, 실리콘 관통 전극들(150)은 대신에 계층들의 평면을 가로질러 더 흩어져 있을 수 있다. 도 1은 실리콘 관통 전극들(150)과 계층들(120 및 122)의 구성요소를 설명하기 위해 계층들(120 및 122)의 분해도를 제공함을 이해하여야 한다. 구현에서, 계층들의 각각은 이전 계층과 접촉하며 위에 가로놓인다. 일 실시예에서, 메타데이터 관리자(134)는 직접 실리콘 관통 전극들(150)을 통해 메모리 계층들(120)에 구현된 메모리에 접근한다(즉, 메타데이터 관리자(134)가 그 자신의 메모리 제어기를 구현하고 있다). 다른 실시예에서, 메모리 인터페이스(130)는 실리콘 관통 전극들(150)로의 접근을 제어하고 따라서 메타데이터 관리자(134)는 메모리 계층들(120)에 메모리 인터페이스(130)를 통해 접근한다.
적층형 메모리 디바이스(102)는 다양한 3D 집적 회로 제조 공정들을 사용하여 제조될 수 있다. 한 접근 방식에서, 계층들(120 및 122) 중 각각은 활성 디바이스들 및 활성 표면에 형성된 하나 또는 이상의 메탈 라우팅 계층들과 분리된 기판(예를 들면, 대용량 실리콘)처럼 구현될 수 있다(즉, 각각의 계층은 분리된 다이 또는 "칩(chip)"을 포함한다). 이 접근 방식은 웨이퍼-온-웨이퍼 프로세스를 포함할 수 있으며 이 다이스(dice)의 행렬을 포함하는 웨이퍼가 제조되고 축소되고, 실리콘 관통 전극들은 실리콘 벌크를 통해 새겨진다. 다수의 웨이퍼들은 도시된 계층 아키텍쳐를 이루기 위해 정렬되어 적층되며(예를 들면, 4개의 메모리 계층들(120)에 대한 메모리 회로 다이들을 포함하는 4개의 웨이퍼들의 적층과 논리 계층(122)에 대한 논리 다이를 포함하는 웨이퍼), 그리고 열압축을 통해 합쳐진다. 결과물인 적층형 웨이퍼 집합은 각각의 3D 집적 회로 컴포넌트들을 분리하기 위해 단일화된다, 이는 그 후에 패키지된다. 다이-온-다이 프로세스에서, 각각의 상응하는 계층을 구현하는 웨이퍼는 먼저 단일화되고 다이들은 따로 적층되고 3D 집적 회로 디바이스를 제조하기 위해 결합된다. 다이-온-웨이퍼 접근 방식에서, 하나 또는 이상의 계층들을 위한 웨이퍼는 하나 또는 이상의 계층들을 위한 다이스를 생성하기 위해 단일화되고 이 다이스는 정렬되며 상응하는 다른 웨이퍼의 다이 공간들에 연결되고, 이는 후에 개별적인 3D 집적회로 디바이스들을 생산하기 위해 단일화 된다. 계층들(120 및 122)을 분리된 웨이퍼상에서 다이스로 제조하는 것의 한가지 장점은 논리 계층들(122)을 제작할 때 메모리 계층들(120)을 제작할 때와는 다른 제조 프로세스가 사용될 수 있다는 점이다. 따라서, 개선된 성능과 더 낮은 전력 소비량을 제공하는 제조 프로세스를 논리 계층들(122)을 제조하는데 사용될 수 있으며(따라서 빠르고 더 낮은 전력의 인터페이스 논리 및 메타데이터 관리자(134)를 위한 회로가 제공된다), 개선된 셀 밀집도와 개선된 누설 제어를 제공하는 제조 프로세스는 메모리 계층(120)을 제조하는데 사용될 수 있다(따라서 적층형 메모리에서 더 밀집되고, 덜 누설되는 비트셀을 제공한다).
다른 접근에서, 계층들(120 및 122)은 모노리식 3D 제조 프로세스를 사용하여 제조되는 반면, 단일 기판이 사용되고 각 계층은, 이온-컷 프로세스와 같은, 계층 전송 프로세스를 사용하여 이전의 계층상에 형성된다. 적층형 메모리 디바이스(102)는 또한 기술들의 조합을 사용하여 제조될 수 있다. 예를 들면, 논리 계층들(120)이 모노리식 3D 기술을 사용하여 제조될 수 있거나, 메모리 계층들은 다이-온-다이 또는 웨이퍼-온-웨이퍼 기술을 사용하여 제조될 수 있으며, 또는 반대로도 가능하다, 그리고 결과물인 논리 계층의 적층 및 메모리 계층의 적층은 적층형 메모리 디바이스(102)에 대한3D 집적회로 디바이스를 형성하도록 결합될 수 있다.
도 2는 본 발명의 다른 실시예에 따른 적층형 메모리 디바이스(102)의 대안적인 구현의 단면도를 예시한다. 도 1에 도시된 하나 또는 이상의 논리 계층들(122)과 메모리 계층들(120)이 수직으로 정렬되는 수직 적층 아키텍쳐를 구현하기 보다, 적층형 메모리 디바이스(102)는 대신에 도 2의 사이드-스플릿 배열을 구현할 수 있으며 이때 적층형 메모리 계층들(120)은 집적 회로 디바이스(202)로서 구현되며 하나 또는 이상의 논리 계층들(122)은 별도의 집적 회로 디바이스(204)로서 구현되고, 집적 회로 디바이스들(202 및 204)이(즉 논리 계층들(122) 및 메모리 계층들(120)) 인터포져(206)를 통해 연결될 수 있다. 인터포져는 예를 들면, 하나 또는 이상의 단계들로 이루어진 실리콘 인터포저들, 인쇄 회로 기판, 또는 이들의 조합을 포함할 수 있다. 도 2가 적층형 메모리 계층들(120)이 단일 집적 회로 디바이스(202)로 다같이 구현된 것으로 예시하더라도, 적층형 메모리 계층들(120)은 대신 다수의 집적회로 디바이스들(202)로 구현될 수 있으며, 각 집적회로 디바이스들(202)은 하나 또는 이상의 메모리 계층들(120)을 포함한다. 비슷하게, 논리 계층들(122)은 하나의 집적회로 디바이스(204) 또는 다수의 집적회로 디바이스들(204)로 구현될 수 있다. 하나 또는 이상의 집적회로 디바이스들(202), 하나 또는 이상의 집적회로 디바이스들(204), 및 통합 기판(206)은 적층형 메모리 디바이스(102)를 나타내는 하나의 집적회로 패키지(205)로 패키지 된다.
도 3은 블럭도 형태로 프로세스 시스템(100)을 예시하며, 도 4 내지 6은 본 발명의 실시예 중 적어도 하나에 따른 도 3의 블럭도의 도면에 관한 프로세스 시스템(100)의 연산의 다양한 방법예들을 예시한다. 상술한 바와 같이, 프로세스 시스템(100)은 하나 또는 이상의 외부 디바이스들(104) 및 디바이스간 인터커넥트(106)를 통해 연결된 적층형 메모리 디바이스(102)를 포함하고, 그것으로 적층형 메모리 디바이스(102)는 메모리 셀 회로(126)의 다수의 적층된 계층들에 의해 나타내지는 적층형 메모리(300)를 구현하고 적층형 메모리 디바이스(102)에 저장된 메타데이터(301)와 관련된 하나 또는 이상의 메타데이터 관리자 연산들을 수행하기 위한 메타데이터 관리자(134)를 구현한다. 메타데이터(301)는 적층형 메모리(300)에, 레지스터 파일에, CAM, 캐시, 또는 논리 계층(122, 도1 및 도 2)의 다른 저장 요소, 비-휘발성 메모리(304)안에, 또는 이들의 조합에 저장될 수 있다. 메타데이터 관리자(134)는 저장된 메타데이터(301)에 접근할 수 있는 관리 논리(302)를 포함하며, 이는 저장된 메타데이터(301)에 관한 메타데이터 관리 연산들을 수행하도록 구성된다. 적층형 메모리 디바이스(102)는 외부 디바이스(104) 및 메타데이터 관리자(134) 둘 모두로부터의 메모리 접근 요구에 응답하여 메모리 접근을 수행하기 위한 메모리 인터페이스(130)를 더 포함한다.
연산중에 적층형 메모리 디바이스(102)는 다른 시스템 구성들을 대신하여 연산 데이터를 저장하기 위한 일반적인 시스템 메모리처럼 기능한다. 일반적인 메모리 접근 연산에서, 외부 디바이스(104)(또는 다른 시스템 구성요소)는, 만약 요구된 메모리 접근이 기록 접근이라면, 주소 신호 및 데이터 신호를 전송하기 위해 그 메모리 인터페이스(116)의 물리적 인터페이스를 조작함으로써 메모리 접근 요구(306)를 디바이스간 인터커넥트(106)를 통해 적층형 메모리 디바이스(102)로 보낸다. 메모리 인터페이스(130)의 물리적 인터페이스는 신호를 수신하며, 신호에 의해 나타나는 메모리 접근 요구를 버퍼하고, 그리고 메모리 접근 요구를 충족하기 위해 메모리 셀 회로(126)에 접근한다. 메모리 접근 요구(306)이 기록 접근인 경우에, 메모리 인터페이스(130)는 신호된 연산 데이터를 신호된 주소에 의해 지시된 메모리(300)의 장소에 저장한다. 메모리 접근 요구(306)가 판독 요구인 경우에, 메모리 인터페이스(130)는 신호된 주소와 상응하는 메모리 (300)의 장소로부터 요구된 연산 데이터를 접근하며, 접근된 연산 데이터(308)를 나타내는 신호를 디바이스간 인너커넥트(106)를 통해 외부 디바이스(104)로 전송하기 위해 메모리 인터페이스(130)의 물리적 인터페이스를 조작한다.
게다가, 적층형 메모리 디바이스(102)는 또한 프로세스 시스템(100)의 외부 디바이스(102)로부터 저장된 연산 데이터에 대한 메타데이터 관리 임무를 오프로드하는 기능을 한다. 일 실시예에서, 적층형 메모리 디바이스(102)의 메타데이터 관리자(134)는 외부 디바이스(104)에 의해 특정 연산 데이터로의 메모리 접근에 응답하여 특정 연산 데이터와 연관된 메타데이터 관리 연산을 수행한다. 예를 들면, 판독 접근 요구에 응답하여, 관리 논리(302)는 판독 데이터에 대한 저장된 체크섬(메타데이터의 일 실시예) 또는 다른 오류 검출 코드에 접근할 수 있고, 판독 데이터로부터 체크섬을 재계산 할 수 있으며, 메모리 인터페이스(130)이 외부 디바이스(104)로 판독 데이터를 출력하기 전에 저장된 데이터의 무결성을 검증하기 위해 전에 저장된 체크섬을 재계산된 체크섬과 비교할 수 있다.
메타데이터 관리자(134)는 외부 디바이스(104)로부터의 메타데이터 명령어(310)에 응답하여 메타데이터 관리 연산들을 또한 수행할 수 있다. 예를 들면, 관리 논리(302)는 가비지 컬렉션 프로세스에 대한 마크-및-스윕 기능을 지원하기 위해 구성될 수 있고, 외부 디바이스(104)는, 관리 논리(302)가 특정 값(예를 들면, "1")을 주소 X에 저장된 연산 데이터와 관련된 도달 가능한 상태 비트(메타데이터의 일 실시예)에 기록하는 것에 응답하여, 메타데이터 명령어(310)을 "MARK(X)"의 형태로 보냄으로써 적층형 메모리 디바이스(102)로 하여금 주소 X의 오브젝트를 도달 가능한 것으로 마크하도록 지시할 수 있다. 메타데이터 관리자(134)는 외부 디바이스(104)에 의해 보내진 메타데이터 명령어(310)에 대한 응답(312)를 제공할 수 있으며, 이때 응답(312)은, 예를 들면, 메타데이터 명령어(310)이 수신되고 전달 되었음의 확인 또는 메타데이터 명령어(310)에 의해 나타난 메타데이터 관리 연산의 수행의 결과를 포함할 수 있다.
메타데이터 관리자(134)는 메모리 접근 요구들, 메타데이터 명령들, 또는 다른 외부 디바이스(104)로부터의 신호와 독립적인 메타데이터 관리 연산을 더 수행할 수 있다. 특정 메타데이터 관리 연산들은 외부 디바이스(104)와 독립적으로 실행되는 비가시화 소프트웨어 또는 백그라운드 연산일 수 있다. 설명을 위해, 관리 논리(302)는 소프트 오류 또는 메모리 셀 회로(126)의 고장으로 인해 손상된 연산 데이터를 식별하고 교정하기 위해 주기적으로 연산 데이터 및 상응하는 오류 교정 코드 값을 스캔하도록 구성될 수 있다.
도 4의 방법(400)은 도 3의 블럭도를 참조하여, 외부 디바이스(104)의 메모리 접근에 응답하여 메타데이터 관리 연산을 수행하기 위한 적층형 메모리 디바이스(102)의 연산예를 예시한다. 방법(400)이 블럭(402)에서 개시되며, 그에 따라 외부 디바이스(104)는 메모리 접근 요구(306)(도 3)를 적층형 메모리 디바이스(102)에 보낸다. 메모리 접근 요구(306)은 적층형 메모리 디바이스(102)에 저장된 연산 데이터를 판독 위한 판독 접근 요구 또는 적층형 메모리 디바이스(102)에 연산 데이터를 기록을 위한 기록 접근 요구를 포함할 수 있다.
블럭(404)에서, 적층형 메모리 디바이스(102)의 메모리 인터페이스(103)는 메모리 접근 요구(306)을 연산 데이터(기록 접근을 위한)를 메모리 셀 회로(126)에 저장함으로써 또는 메모리 셀 회로(126)로부터 연산 데이터에(판독 접근을 위한) 접근하며 접근된 연산 데이터를 외부 디바이스(104)에 제공함으로써 프로세스한다. 동시에, 블럭(406)에서 메타데이터 관리자(134)는 메모리 접근 요구(306) 에 응답하여 메모리 접근 요구(306)와 연관되는 하나 또는 이상의 메타데이터 관리 연산들을 수행한다. 예를 들면, 메타데이터 관리자(134)는 메모리 활용 프로파일링 연산을 수행하도록 구성될 수 있으며 메모리 접근과 함께 블럭(406)에서 수행되는 메타데이터 관리 연산들은 예를 들면, 메모리 접근에 의해 접근된 메모리 주소 또는 메모리 주소 범위와 연관된 메모리 활용 프로파일링 정보(메타데이터의 실시예), 이를테면 활용 메트릭(utiliztion metric)와 같은, 의 업데이트 또는 그렇지 않으면 수정을 포함할 수 있다. 다른 예에서, 메타데이터 관리자(134)는 메모리 트레이싱 또는 다른 메모리 로깅 연산을 수행하도록 구성될 수 있고 블럭(406)에서 수행되는 메타데이터 관리 연산은 메모리 로그(메타데이터의 실시예)에서 메모리 접근에 의해 접근된 메모리 주소의 로깅을 포함할 수 있다. 또 다른 예에서, 메타데이터 관리자(134)는 적층형 메모리 디바이스(102)에 저장된 연산 데이터와 관련한 데이터 무결성, 보안성, 또는 신뢰성 기능을 제공하도록 구성될 수 있으며 따라서 블럭(406)에서 수행되는 메타데이터 관리 연산들은 예를 들면, 저장된 연산 데이터와 관련된 오류 검출 값의 산출 또는 검증을 포함할 수 있으며, 오류 검출 값은 메모리 접근과 연관된 연산 데이터에 대한 하나 또는 이상의 체크섬, 오류 교정 코드 값, 또는 패러티 비트를 포함할 수 있다.
도 5의 방법(500)은, 외부 디바이스(104)로부터의 메타데이터 명령에 응답하여 메타데이터 관리 연산을 수행하기 위한 적층형 메모리 디바이스(102)의, 도 3의 블럭도의 내용에 따른, 연산 예를 예시한다. 방법(500)은 블럭(502)에서 개시되며, 그에 따라 외부 디바이스(104)는 메타데이터 명령어(310)(도3)을 적층형 메모리 디바이스(102)에 보낸다. 메타데이터 명령어(310)은 메타데이터 관리자(134)로 하여금 하나 또는 이상의 메타데이터 관리 연산들을 수행하게 하기 위한 명시적 지시 또는 다른 명령을 나타낸다. 메타데이터 명령어(310)에 응답하여, 블럭(504)에서 메타데이터 관리자(134)는 메타데이터 명령어(310)에 의해 나타난 하나 또는 이상의 메타데이터 관리 연산들을 수행한다. 이 메타데이터 관리 연산들은 예를 들면, 메타데이터를 생성하기 위한 연산, 특정한 메타데이터를 출력하기 위한 연산, 특정한 메타데이터를 변경하기 위한 연산, 등을 포함할 수 있다.
예시를 위해, 일 실시예에서 메타데이터 관리자(134)는 외부 디바이스(104)로부터의 다중 연속 메모리 접근들을 피하기 위해 외부 디바이스(104)를 위한 주소 변환 지원을 제공하며 그렇지 않으면 상응하는 가상 주소에 대한 적당한 물리적 주소를 결정하기 위해 외부 디바이스(104)가 페이지 테이블 워크를 수행할 필요가 있다. 이 구현에서, 외부 디바이스(104)는 대신에 주소 변환 명령을 메타데이터 관리자(134)에 보낼수 있으며, 이는 주소 변환 명령과 함께 제공된 가상 주소에 상응하는 물리적 주소를 결정하고 외부 디바이스(104)에 리턴하기 위해 지역에 저장된 페이지 테이블들 또는 다른 주소 변환 정보(메타데이터의 일 실시예)를 통해 페이지 워크할 수 있다. 메타데이터 관리자(134)가 메모리 활용 프로파일링을 공급하는 경우에, 메타데이터 관리는, 예를 들면, 주어진 프로파일링 연산에 대한 프로파일링 메크릭들의 재설정, 프로파일될 메모리 주소 또는 메모리 주소 범위의 설정, 프로파일링 종류(예를 들면, 사용량 집계, 접근 빈도수, 기타 등등)의 설정, 등과 같이 필요로하는 프로파일링 연산에 대한 파라미터를 설정하기 위한 명령을 포함할 수 있다. 메타데이터 명령은 또한 외부 디바이스(104)에 메모리 활용 프로파일링 연산에 대한 프로파일링 메트릭(메타데이터의 일 실시예), 또는 프로파일링 메트릭을 가리키는 메모리 주소를 출력하기 위한 명령을 포함할 수 있다. 다른 예시에서, 메타데이터 명령어(310)은 메타데이터 관리자(134)에 의해 수행되는 메모리 로깅 연산과 관계된 명령을 포함할 수 있다. 이 내용에서, 메타데이터 명령어(310)은 예를 들면, 메모리 로깅 연산에 대한 기준을 설정하기 위한 명령, 로깅 연산에 대한 메모리 로그 정보 또는 그런 정보의 장소를 가리키는 메모리 주소를 출력하기 위한 명령, 등을 포함할 수 있다. 메타데이터 명령어(310)은 또한 메타데이터 그 자체를 수정하기 위한 명령을 포함할 수 있다. 예를 들면, 메타데이터 관리자가(134)가 적층형 메모리 (300)(도3)에 저장된 연산 데이터에 대한 가비지 컬렉션을 지원하는 경우에, 메타데이터 명령어(310)은, 적층형 메모리(300)의 주소 X에 저장된 상응하는 오브젝트의 "도달 가능한(reachable)"비트를 설정하기 위한 명령인 "MARK(X)"와 같은, 가비지 컬렉션 속성들을 변경하기 위한 명령을 포함할 수 있다.
도 6의 방법(600)은, 도 3의 블럭도의 내용에 따른, 메타데이터를 외부 디바이스(104)에 제공하는 적층형 메모리 디바이스(102)의 연산예를 예시한다. 방법(600)은 블럭(602)에서 개시되며, 그에 따라 외부 디바이스(104)는 특정한 메타데이터에 대한 요구를 적층형 메모리 디바이스(102)에 보낸다. 이에 응답하여, 블럭(604)에서 메타데이터 관리자(134)는 특정한 메타데이터에 접근하고 접근된 메타데이터를 외부 디바이스(104)에 제공한다. 어떤 다양한 종류의 메타데이터도 외부 디바이스(104)에 제공될 수 있다. 상술한대로, 제공된 메타데이터는 메모리 활용/성능 메트릭들, 메모리 로그들/트레이스들, 주소 변환 정보, 데이터 보안성/무결성 정보, 등을 포함할 수 있다.
일 실시예에서, 요구는 식별자를 통해 제공될 메타데이터를 특정하고, 메타데이터 관리자(134)는 식별자에 기반하여, 메타데이터가 저장될 위치를 결정하며, 그 위치로부터 메타데이터에 접근하고, 접근된 메타데이터를 그리고 출력한다. 다른 실시예에서, 요구는 메타데이터가 저장될 메모리 주소를 특정하고, 메타데이터 관리자(134)는 메타데이터를 특정된 장소로부터 접근하고 출력한다. 이 경우에, 메타데이터 관리자(134)는 메모리 주소에 대한 메타데이터 명령어(310) (도3)에 응답하여 또는 메타데이터에 대한 맥락을 설정하는 메타데이터 명령어(310)에 응답하는 확인으로써 메타데이터의 메모리 주소를 외부 디바이스(104)에 공급했을 수도 있다. 예를 들면, 메타데이터 관리자(134)로 하여금 특정한 메모리 주소 범위에 대해 메모리 활용 프로파일링 연산을 설정하도록 지시하는 메타데이터 명령어(310) (도3)에 응답하여, 메타데이터 관리자(134)는 메모리 활용 프로파일링 연산이 설정되었음을 확인하는 응답(312) (도3)을 보낼 수 있으며, 응답은 또한 프로파일링 연산에 대한 활용 프로파일링 메트릭들이 저장될 시작 메모리 주소를 포함한다.
도 7 내지 13은 메타데이터 관리자(134)와 적층형 메모리 (300)사이의 저-지연시간, 고-대역폭 연결을 이용하거나 또는 그렇지 않으면 프로세스 시스템(100)의 다른 구성요소로부터의 메타데이터 관리 연산을 오프로드하기 위하여 적층형 메모리 디바이스(102)에 의해 수행되는 메타데이터 관리 연산예를 예시한다.
도 7은 외부 디바이스(104)를 대신하여 주소 변환 연산을 수행하기 위한 메타데이터 관리자(134)의 사용예를 묘사한다. x86 아키텍쳐들을 포함하는, 많은 컴퓨터 아키텍쳐들은 프로세스 디바이스에서 사용되는 가상 주소를 시스템 메모리 및 메모리-매핑된 주변 디바이스에서 사용되는 물리적 주소로 변환하기 위해 가상-물리 주소 매핑을 사용한다. 종종, 프로세스 디바이스는 최근 가상-물리 주소 변환들을 버퍼하는 변환 색인 버퍼(translation lookaside buffer)를 캐시한다. 그러나, 만약 변환 색인 버퍼가 놓치는 경우, 프로세스 디바이스는 일반적으로 적절한 가상-물리 주소 변환을 얻을 수 있도록 메모리에 저장된 하나 또는 이상의 페이지 테이블들을 가로지르는 것이 요구된다. 현재 x86 아키텍쳐들은 네개의 페이지 테이블들까지 사용하고 그로 인해 일반적인 페이지 테이블 워크는 프로세스 디바이스에 네번의 메모리 접근들(페이지 테이블 레벨 당 페이지 테이블 엔트리당 하나의 접근)까지 요구할 수 있다. 그러나, 메타데이터 관리자(134)가 단단하게 적층형 메모리(300)와 연결되어 있어, 메타데이터 관리자(134)는 메모리 주소 변환 연산을 오프로드하도록 사용되어질 수 있으며, 따라서 외부 디바이스(104)는 다수의 분리된 메모리 접근들 대신에 변환을 얻기 위해 단지 하나의 메타데이터 명령의 개시가 필요하며, 그렇지 않으면 일반적인 페이지 테이블 워크를 수행하기 위해 요구될 것이다. 더하여, 이 접근 방식하에서 외부 디바이스(104)가 그 자신의 페이지 테이블 워크 로직을 구현할 필요는 없을 수 있으며, 따라서 페이지 테이블 워크 논리는 적층형 메모리 디바이스(102)의 메타데이터 관리자(134)에 의지하는 외부 디바이스(104)의 설계에서 제외될 수 있고, 이에 의해 외부 디바이스(104)를 구현하는 면적과 비용을 절감할 수 있다.
설명된 예에서, 외부 디바이스(104)는 가상 주소 X에 대한 주소 변환 명령어(702) (메타데이터 명령의 일 실시예)를 적층형 메모리 디바이스(102)에 보낸다. 주소 변환 명령어(702)는 주소 변환에서 사용된 페이지 테이블들에 대한 페이지 디렉토리의 장소를 식별하기 위하여 x86 구현들에서 CR3 레지스터의 값과 같은 주소 변환을 수행하기 위해 사용된 다른 정보를 더 포함할 수 있다. 메타데이터 관리자(134)는 페이지 테이블들의 관리와 관련된 상태를 유지한다(예를 들면, 적층형 메모리(300)에 저장된 페이티 테이블들(704)로의 베이스 포인터들). 주소 변환 명령어(702)에 응답하여, 메타데이터 관리자(134)는 이 유지된 상태 및 주소 변환 명령어(702)와 함께 제공된 정보를 페이지 테이블(704)들의 하나 또는 이상의 단계들의 하나 또는 이상의 페이지 테이블 엔트리들(페이지 테이블 엔트리 접속들은 도 7에서 PTE0, PTE1, ,,, PTEX 로 식별된다)에 접근을 통해 페이지 테이블 워크를 수행하기 위해 사용하며, 그리고 응답(706)으로서 요구된 주소 변환 정보를 외부 디바이스(104)에 제공한다. 더욱이, 페이지 테이블 관리 논리는 주소 변환 프로세스를 가속 하기 위해 캐시 또는 전에 수행된 주소 변환들을 캐시하거나 중간 페이지 테이블 단계들로부터의 엔트리들을 캐시하는 다른 저장 요소를 구현하거나 접근을 가질 수 있다. 이 프로세스가 수행되는 동안, 외부 디바이스(104)는 주소 변환 정보의 수령을 예상하여 다른 연산의 실행을 계속할 수 있다.
메타데이터 관리자(134)에 구현된 페이지 테이블 관리 논리는 다른 변환 관련된 연산들을 지원할 수 있다. 예를 들면, 외부 디바이스(104)가 판독 접근 요구를 상응하는 적층형 메모리(300)에 개시할 때, 페이지 테이블 관리 논리는 외부 디바이스(104)의 연산 시스템이 페이지의 내용이 결국 디스크 또는 다른 비-휘발성 저장고로 출력될 것임을 결정할 수 있도록, 상응하는 페이지 테이블 엔트리를 더티하다고 마크할 수 있다. 이 프로세스를 구현하기 위해, 메타데이터 관리자(134)는 메타데이터 관리자(134)가 가상 주소 X에 상응하는 페이지 테이블 엔트리를 얻기 위해 페이지 테이블(704)를 워크하는 것에 응답하여 외부 디바이스(104)에 의해 보내진 메타데이터 명령 "MARKDIRTY(X)"를 지원할 수 있으며, 상응하는 페이지 테이블 엔트리에 대한 더티 비트를 설정한다. 비슷한 메타데이터 명령어는 접근 비트의 마킹, 허가들의 체크/설정, 페이지 테이블 엔트리의 무효 또는 재설정, 페이지 테이블 엔트리의 할당 또는 설정, 등을 위해 지원될 수 있다.
도 8은 본 발명의 일 실시예에 따른 동적 메모리 수행/활용 프로파일링을 위한 지원을 공급하는 메타데이터 관리자(134)의 사용예를 예시한다. 이 기능을 지원하기 위해, 메타데이터 관리작(134)의 프로파일링 논리는 하나 또는 이상의 프로파일링 연산들을 구현하며, 각 프로파일링 연산은 하나 또는 이상의 상응하는 프로파일 메트릭들(804)과 저장된 프로파일 상태(802)에 의해 특정된다. 프로파일 상태(802)는 상응하는 프로파일링 연산의 파라미터들을 나타내는 정보를 포함한다. 예를 들면, 프로파일 스테이트(802)는 관심있는 하나 또는 이상의 메모리 주소들 또는 관심있는 하나 또는 이상의 연속적인 또는 비 연속적인 메모리 주소 범위들 등을 특정할 수 있다. 일부 혹은 전부의 프로파일 상태(802)의 파라미터들은, 프로파일링 연산을 설정하는 메타데이터 명령어를 통해서와 같이, 외부 디바이스(104)에 의해 공급될 수 있다. 프로파일 메트릭들(804)은 상응하는 프로파일 상태의 파라미터들에 따른 메타데이터 관리자(134)에 의해 유지된 메트릭들을 포함한다. 프로파일 메트릭들은, 예를 들면, 특정한 메모리에의 주소 또는 메모리 주소 범위에 다수의 판독들 또는 기록들, 특정한 메모리 주소 또는 메모리 주소 범위가 접근되거나 접근되지 않은 빈도수(수신된 메모리 접근들의 총 수 또는 절대 시간/클럭 싸이클과 관련되어 측정된), 특정한 범위내에서 접근된 특별한 메모리 장소의 수, 등을 포함할 수 있다. 따라서, 프로파일 메트릭들(804)은 예를 들면, 적층형 메모리(130)에 저장되거나 예를 들면, 레지스터-매핑된 카운터 처럼 논리 계층(122)(도 1)에 구현되는 카운터들을 사용하도록 구현될 수 있다.
프로파일링 연산을 위한 프로파일 메트릭들(804)은 예를 들면, 외부 디바이스(104)에 의한 프로파일 메트릭들(804)이 저장된 메모리 장소의 판독 접근을 통해 또는 도 6과 관련하여 상술한 방법에 따른 프로파일 메트릭들(804)에 대한 요구에 응답하여 외부 디바이스(104)에 공급될 수 있다. 다양한 프로파일 연산 및 상응하는 프로파일 메트릭들이 위에서 설명되었지만, 본 발명은 위의 예들에 한정되지 않으며, 하지만 대신에 다양한 메모리 활용 또는 성능 메트릭들의 프로파일링을 포함할 수 있다.
저장된 프로파일 상태(802)에 의해 특정된 프로파일링 연산을 구현하기 위해, 메타데이터 관리자(134)는 메모리 인터페이스(130)와 적층형 메모리(300) 사이의 주소 버스 ADDR 을 스누프 한다. 따라서, 외부 디바이스(104)로부터 주소 Y에의 메모리 접근 요구(806)는 메타데이터 관리자(134)에 의해 스누프 되는 주소 버스상의 주소 Y에 대한 주소 신호의 생성을 유발한다. 메타데이터 관리자(134)는 주소 Y를 메모리 주소들 또는 프로파일 상태(302)에 의해 특정된 메모리 주소 범위들과 비교하며, 히트인 경우, 상응하는 프로파일 메트릭(804)을 업데이트 한다. 예를 들면, 만약 프로파일 연산이 메모리 주소 범위에 판독 및 기록 접근들의 수를 세기 위한 것이라면, 만약 주소 Y가 범위에 맞아 떨어지면, 메타데이터 관리자(134)는 접근을 되돌리기 위해 카운터의 사용을 증가시킨다. 유사하게, 만약 프로파일링 연산이 메모리 접근 범위 내에서 접근된 고유한 장소들의 수를 세기 위하한 것이라면, 만약 주소 Y가 특정한 범위내에 맞아 떨어지면, 메타데이터 관리자(134)는 범위 내에서 이미 접근된 주소들 리스트를 저장하고 있는 데이터 아키텍쳐에 접근할 수 있으며, 만약 주소 Y가 이 리스트 안에 없다면, 상응하는 카운터의 사용을 증가시키고 주소 Y를 리스트에 추가한다.
도 9는 본 발명의 일 실시예에 따른 메모리 로깅을 위한 지원을 제공하는 메타데이터(134)의 사용예를 도시한다. 이 기능을 지원하기 위해, 메타데이터 관리자(134)의 트레이스 논리는 적층형 메모리(300)에 대한 접근과 관련된 메모리 트레이스 또는 로그 정보를 저장하기 위해 적어도 하나인 접근 로그(902)를 구현한다. 접근 로그(902)는 논리 계층들(122)(도 1)중 하나에 또는 메모리 로깅을 위해 예약된 적층형 메모리(300)의 리전에 저장 요소 (예를 들면, 캐시)로 구현될 수 있다. 외부 디바이스(104)는 로깅 연산을 개시하고, 로깅 연산을 종료하며, 그리고 접근 로그(902)의 로그 정보에 접근하기 위한 메타데이터 명령어를 보낼 수 있다. 도 8을 참조하여 상술한 프로파일링 예에 따라, 메모리 로깅을 구현하기 위해 메타데이터 관리자(134)는 메모리 인터페이스(130) 과 적층형 메모리(300) 사이의 주소 버스 ADDR을 스누프 한다. 그에 따라, 외부 디바이스(104)에 의해 보내진 메모리 접근 요구(906)는 주소 버스 ADDR상에 상응하는 주소의 신호를 유발하여, 결과적으로 메타데이터 관리자(134)에 의해 스누프 되고 접근 로그(902)에서 로그 된다. 이러한 접근방식은 외부 디바이스(104)와 적층형 메모리(104)사이의 트래픽을 상당히 감소시킬 수 있다. 일반적인 접근에서, 외부 디바이스(104) 또는 디바이스간 인터커넥트(106)(도1)상의 다른 디바이스는 메모리 접근을 위해 디바이스간 인터커넥트(106)의 주소 버스를 감시해야만 하고 적층형 메모리(300)에 저장된 로그의 업데이트를 하기 위해 메모리 인터페이스(130)에 의한 프로세스를 위한 분리된 기록 접근 요구를 생성해야 한다. 대조적으로, 감시와 로그 업데이트가 완전히 적층형 메모리 디바이스(102)내에서 일어나기 때문에 위에서 설명된 기술은 외부 디바이스와 적층형 메모리 디바이스(102)사이의 추가적인 트래픽을 요구하지 않는다.
도 10 및 11은 본 발명의 일 실시예에 따른 데이터 보안성/무결성/신뢰성 메타데이터 관리 지원을 제공하기 위한 메타데이터 관리자(134)의 사용예를 도시한다. 패러티 비트들, 체크섬들, 그리고 순환 중복 체크섬(cyclic redundancy checksum: CRC) 들은 종종 저장된 데이터가 산출의 정확성에 대한 확신의 제공 또는 저장된 데이터의 악의적인, 인가되지 않은, 또는 의도되지 않은 수정의 검출에 의해 데이터의 무결성을 검증하도록 사용된다. 체크섬들 또는 다른 오류 검출 메타데이터와 같은, 오류 교정 코드(Error correcting codes: ECC)는 교정될 오류들의 분명한 숫자를 또한 알 수 있게 하면서 연산 데이터의 오류들의 검출을 가능하게 한다. 메타데이터의 오류 검출/교정과 같은 관리를 가능하게 하기 위해, 메타데이터 관리자(134)는 저장된 연산 데이터와 연관된 그런 오류 검출 값을 생성하거나 검증하는 로직을 포함할 수 있다. 도 10의 예에서, 메타데이터 관리자(134)는 적층형 메모리(300)의 메모리 장소 X에 저장될 연산 데이터에 대한 체크섬을 생성하는 로직을 포함한다. 외부 디바이스(104)에 의해 기록 요구(1002)가 메모리 장소 X에 연산 데이터를 저장하기 위해 보내질 때, 메타데이터 관리자(134)는 기록 요구(예를 들면, 메모리 인터페이스(130)과 적층형 메모리(300) 사이의 데이터 버스의 스누핑에 의해)와 연관된 기록 데이터(1004)를 수신하고 메모리 장소 X의 수정되지 않은 연산 데이터의 나머지에 접근한다(메모리 장소 X가 기록 데이터(1004)의 크기보다 큰 경우에). 메타데이터 관리자(134)의 논리는 그리고 메모리 장소 X 기록 데이터(1004)에 저장될 연산 데이터(기록 데이터(1004)를 포함하여)에 대한 체크섬(1006)을 산출하며 메모리 장소 X와 연관된 적층형 메모리(300)에 저장될 체크섬(1006)을 제공한다. 체크섬(1006)은 연산 데이터와 함께 메모리 장소 X에, 또는 적층형 메모리(300) 안의 분리된 체크섬 어레이에 저장될 수 있다.
도 11의 예에서, 메타데이터 관리자(134)는 적층형 메모리(300)의 메모리 장소 X에 저장된 연산 데이터에 대한 체크섬을 검증하기 위한 로직을 포함한다. 메모리 장소 X로부터 판독 데이터(1104)를 출력하기 위해 외부 디바이스(104)에 의해 판독 요구(1102)가 보내질 때, 메타데이터 관리자(134)는 메모리 장소(1104)에 저장된 연산 데이터(1105)(판독 데이터(1104)를 포함하는)를 수신하고(예를 들면, 메모리 인터페이스(130)과 적층형 메모리(300)사이의 데이터 버스의 스누핑에 의해), 연산 데이터(1105)에 대한 체크섬(1106)을 수신한다. 메타데이터 관리자(134)의 논리는 그리고 연산 데이터(105)에 대한 체크섬을 재산출하고 재산출된 체크섬을 접근된 체크섬(1106)과 비교한다. 합치되는 경우에, 메타데이터 관리자(134)는 원래 체크섬이 유효하게 보이며 따라서 연산 데이터(105)는 변조된 것 또는 달리 손상된 것으로 보이지 않는다는 것을 나타내기 위해 체크섬 유효 신호(1108)를 진단 한다. 메모리 인터페이스(130)는 그리고 체크섬 유효 신호(1108)의 진단에 응답하여 판독 데이터(1104)를 출력할 수 있다. 재산출된 체크섬과 접근된 체크섬(1106)이 합치되지 않는 경우에, 메타데이터 관리자(134)는 예를 들면, 외부 디바이스(104)에 연산 데이터(1105)가 손상 되었음을 나타내기 위해 예외 또는 실패를 보낼 수 있다.
상술한 바와 유사한 이 프로세스들은 다른 종류들의 오류 검출 또는 오류-교정 메타데이터에 대해서 구현될 수 있다. 예를 들면, 메타데이터 관리자(134)는 적층형 메모리(300)에 저장된 연산 데이터에서 업데이트, 체크, 그리고 오류 수리를 하는 오류 교정 코드 메타데이터를 프로세스하기 위한 로직을 포함할 수 있다. 오류 교정 코드 관리 연산들은 상술한 바처럼 메모리 접근 요구들에 응답하여 수행될 수 있다. 예를 들면, 오류 교정 코드 생성은 기록 접근에 응답하여 수행될 수 있고, 오류 교정 코드 검증(그리고 오류 교정)은 판독 접근에 응답하여 수행될 수 있다. 더하여, 오류 교정 코드 관리 연산들은 메타데이터 관리자(134)에 의해 백그라운드에서 수행될 수 있다. 예를 들면, 메타데이터 관리자(134)는 주기적으로 또는 지속적으로 연산 데이터 안의 오류를 식별하고 교정하기 위해 연산 데이터 및 적층형 메모리(300)에 저장된 오류 교정 코드 값을 워크하도록 연산할 수 있다. 패러티 및 체크섬 관리 연산들로부터 구분되는 특정 구현들에서의 오류 교정 코드 관리 연산들은, 오류 교정 코드 상태는 보통 아키텍쳐적으로 소프트웨어에 비가시적이다. 따라서, 외부 디바이스(104)의 메모리 제어기는 적층형 메모리 디바이스(102)의 메타데이터 관리자(134)에 의해 제공된 오류 교정 코드 관리를 신뢰하여 오류 교정 코드 관리의 지원을 제거함으로써 단순화 될 수 있다.
데이터 보안성/무결성/신뢰성 메타데이터 관리 연산들이 오류 교정 코드들의 내용에 따라서 설명되었으나, 다른 형태들의 오류 검출 및 교정은 메타데이터 관리자(134)에 의해 지원될 수 있다. 예시를 위해, 적층형 메모리(300)은 독립적인 디스크들의 반복 어레이 (redundant array of independent discs: RAID)와 같은 기능을 구현할 수 있으며 추가의 패러티 비트(메타데이터의 일 실시예)는 산출되고 적층형 메모리(300)의 인터리브되어 가로지르는 다수의 리전들 또는 적층형 메모리(300)의 분리된 리전에 저장될 것이다.
도 12 및 13은 본 발명의 일 실시예에 따른 가비지 컬렉션 관리를 위한 지원을 공급하는 메타데이터 관리자(134)의 사용예를 도시한다. 많은 컴퓨터 시스템들은 연산 시스템 또는 어플리케이션에 의해 더이상 사용되지 않는 연산 데이터에 의해 차지된 메모리 장소들을 되찾기 위해 가비지 컬렉션 프로세스를 구현한다. 일반적으로, 가비지 컬렉션 프로세스는 마크-및-스윕 접근 방식을 구현한다. 가비지 컬렉터는 "도달 가능한(reachable)", 다시 말해서 라이브 프로그램 상태에 의해 직접적으로 또는 간접적으로 참조될 수 있는, 오브젝트를 식별하기 위해 메모리를 스캔한다. 이 도달 가능한 것으로 식별된 오브젝트들은 그렇게 식별된다("마크-및-스윕(mark-and-sweep)"의 "마크(mark)"부분), 그리고 가비지 컬렉터는 그때 메모리를 훑어서 스캔하고 "도달 가능한"것으로 마크되지 않은 오브젝트들을 무효화한다("마크-및-스윕"의 "스윕"부분), 그렇게 함으로써 무효화된 오브젝트를 저장하던 메모리 장소들을 확보 할 수 있다. 메타데이터 관리자(134)는 적층형 메모리(300)을 위한 그런 가비지 컬랙션 연산들을 구현하는 로직을 포함할 수 있다.
예시를 위해, 도 12는 메타데이터 관리자(134)가 메모리 장소 X의 연산 데이터(1206)와 연관된 도달 가능한 상태의 비트(1204)를 "도달 가능한" 상태로 설정함에 응답하여, 메타데이터 관리자(134)가 메타데이터 명령어(1202), "MARK(X)", 를 지원하는 예를 도시한다. 반대로, 메타데이터 관리자(134)가 도달 가능한 상태의 비트(1204)를 클리어함에 응답하여, 메타데이터 관리자(134)는 메타데이터 명령, "CLEAR(X)", 를 지원할 수 있다. 일반적인 시스템에서, 프로세서 디바이스는 메모리로부터 도달 가능한 상태를 읽고, 도달 가능한 상태를 도달 가능한으로 수정하며, 도달 가능한 상태를 다시 메모리에 쓸 필요가 있다. 이와 대조적으로, 상술된 접근 방식은 외부 디바이스(104)와 적층형 메모리(102) 사이에 보내지는 단일 명령어만을 요구한다.
메타데이터 관리자(134)는 또한 더 정교한 마크 프로세스를 구현할 수 있다. 예시를 위해, 도 13은 메타데이터 관리자(134)가 메모리 장소 X의 연산 데이터(1206)과 연관된 도달 가능한 비트(1204)를 도달 가능한 상태로 설정하고, 반복적으로 연산 데이터(1206)에 의해 참조된(예를 들면, 포인터(1204) 또는 다른 참조된 주소를 통해) 다른 오브젝트(예를 들면, 오브젝트(1306)를 방문하며, 그 오브젝트의 도달 가능한 비트(예를 들면, 도달 가능한 상태 비트(1304))를 또한 설정함에 응답하여, 메타데이터 관리자(134)가 메타데이터 명령어(1302), "MARKALL(X)"을 지원하는 예를 도시한다. 유사하게, 메타데이터 관리자(134)는 오브젝트의 도달 가능한 상태 비트 및 모든 반복적으로 참조된 오브젝트들을 클리어하기 위해 또한 메타데이터 명령 "CLEARALL(X)"를 구현할 수 있다. 이 접근 방식은 메모리 안에 오브젝트의 레이아웃을 위해 미리 결정된 형식, 특별히, 포인터를 포함하는 필드인 오브젝트의 사이즈를 결정하는 방법인, 을 이용한다. 더하여, 이 접근 방식은 일반적으로 도 7을 참조하여 상술된 가상-물리 주소 변환 지원을 요구한다.
적어도 하나의 실시예에서, 상술된 컴포넌트와 기술은 도 1 내지 13의 하나 또는 이상의 적층형 메모리 디바이스(102)와 같은 집적 회로 디바이스(집적 회로 패키지 또는 마이크로칩으로 언급되는)를 포함하는 시스템 안에 구현된다. 전자 설계 자동화(EDA) 및 캐드(CAD) 소프트웨어 도구들은 이런 집적회로 디바이스의 설계와 제조에 사용될 수 있다. 이런 설계 도구들은 일반적으로 하나 또는 이상의 소프트웨어 프로그램들을 나타낸다. 이 하나 또는 이상의 소프트웨어 프로그램들은 설계될 공정의 적어도 한 부분을 수행하거나 회로망을 제조하기 위해 생산 시스템을 제작하기 위해 컴퓨터 시스템이 하나 또는 이상의 집적회로 디바이스들의 회로망을 대표하는 코드에서 작동하도록 조작하는 컴퓨터 시스템에 의해 실행 가능한 코드를 포함한다. 이 코드는 명령어들, 데이터, 또는 명령어들과 데이터의 조합을 포함할 수 있다. 디자인 도구 또는 제조 도구를 나타내는 이 소프트웨어 명령어들은 일반적으로 컴퓨팅 시스템에서 접근 가능한 컴퓨터 판독 가능 저장 매체에 저장된다. 비슷하게, 집적회로 디바이스의 설계 또는 제조에서 하나 또는 이상의 단계들을 대표하는 코드는 같은 컴퓨터 판독 가능 저장 매체 또는 다른 커퓨터 판독 가능 저장 매체에 저장되고 접근될 수 있다.
컴퓨터 판독 가능 매체는 명령어 및/또는 데이터를 컴퓨터 시스템에 공급하는 동안 컴퓨터 시스템으로부터 접근 가능한 어느 저장 매체, 또는 저장 매체의 조합을 포함할 수 있다. 이런 저장 매체는 , 이에 국한되지는 않으나, 광학 매체(예를 들면, 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD), 블루-레이 디스크), 자기 매체(예를 들면, 플로피 디스크, 자기 테이프, 또는 자기 하드 드라이브), 휘발성 메모리(예를 들면, 랜덤 접근 메모리(RAM), 또는 캐시), 비-휘발성 메모리(예를 들면, 판독-전용 메모리(ROM), 또는 플래쉬 메모리), 또는 미세전자기계시스템(microelectromechanical system: MEMS)-저장 매체 기반을 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨팅 시스템에 내장(예를 들면 시스템 RAM, 또는 ROM)될 수 있거나, 컴퓨팅 시스템에 고정되어 부착(예를 들면 자기 하드 드라이브)될 수 있거나, 컴퓨팅 시스템에 제거 가능하도록 부착(예를 들면, 광학 디스크 또는 범용 직렬 버스(universal serial bus: USB)-플래쉬 메모리 기반)될 수 있거나, 또는 컴퓨터 시스템과 와이어 또는 무선 네트워크를 통해 연결될(예를 들면, 네트워크 접근 가능한 저장소(NAS)) 수 있다.
도 14는 본 발명의 적어도 하나의 실시예에 따른 본 발명의 하나 또는 이상의 측면을 구현하는 집적 회로 디바이스의 설계 및 제조에 대한 방법 (1400)의 예를 예시한다. 위에 설명한 바와 같이, 이하의 프로세스들의 각각에 대해 생성된 코드는 저장되거나 아니면 상응하는 설계 도구 및 제조 도구에 의한 접근 및 사용을 위해 컴퓨터 판독 가능한 저장 매체에 내장된다.
블럭 (1402)에서 집적 회로 디바이스를 위한 기능 요구사항(functional specification)이 생성된다. 기능 요구사항(마이크로 아키텍쳐 명세서(MAS)로 종종 언급되는)는 C, C++, 시스템C, 시뮬링크, 또는 매트랩을 포함하는 다양한 프로그래밍 언어 또는 모델링 언어에 의해 나타내어질 수 있다.
블럭 (1404) 에서, 기능 요구사항은 집적 회로 디바이스의 하드웨어를 대표하는 하드웨어 기술 코드를 생성하기 위해 사용된다. 적어도 하나의 실시예에서, 하드웨어 기술 코드는 형식적 기술 및 집적회로 디바이스의 회로의 설계를 위한 다양한 컴퓨터 언어, 명세서 언어, 또는 모델링 언어를 포함하는 적어도 하나의 하드웨어 기술 언어(Hardward Descrition Language: HDL)을 사용하여 나타내어 진다. 생성된 HDL 코드는 일반적으로 집적회로 디바이스의 회로의 작동, 회로의 설계와 조직, 및 시뮬레이션을 통한 집적회로 디바이스의 올바른 동작을 검증하기 위한 테스트들을 나타낸다. HDL의 예는 아날로그 HDL, 베릴로그 HDL, 시스템 베릴로그 HDL, 및 VHDL을 포함한다. 동기화된 디지털 회로를 구현하는 집적회로 디바이스를 위해 하드웨어 기술 코드는 동기화된 디지털 회로의 동작의 추상적인 표현을 제공하기 위한 레지스터 전송 레벨(register transfer level: RTL)코드를 포함할 수 있다. 다른 종류의 회로를 위해, 하드웨어 기술 코드는 회로의 작동의 추상적인 표현을 제공하기 위해 행동-레벨 코드를 포함할 수 있다. 하드웨어 기술 코드에 의해 나타내어진 HDL 모델은 설계 검증을 통과하기 위해 일반적으로 한번 또는 그 이상 실시되는 시뮬레이션 및 디버깅의 대상이 된다.
하드웨어 기술 코드에 의해 나타내어진 설계를 검증한 후에, 블럭 (1406)에서 합성 도구가 집적회로 디바이스의 회로의 초기 물리적 구현을 나타내거나 또는 정의하는 코드를 생성하기 위해 하드웨어 기술 코드를 합성하는데에 사용된다. 일 실시예에서, 합성 도구는 하나 또는 이상의 회로 소자 인스턴스(예를 들면, 게이트들, 트랜지스터들, 저항들, 커패시터들, 인덕터들, 다이오들, 기타) 들과 회로 소자 인스턴스 간의 망, 또는 연결을 포함하는 네트리스트를 생성한다. 다른 실시예에서, 네트리스트의 전부 또는 일부는 합성 도구의 사용 없이 수동적으로 생성된다. 하드웨어 기술 코드와 함께 하는 것 처럼, 네트리스트는 하나 또는 이상의 네트리스트들의 마지막 세트가 생성되기 전에 하나 또는 이상의 테스트 및 검증 프로세스들의 대상이 될 수 있다.
다른 실시예에서, 도식적인 에디터 도구는 집적회로 디바이스의 회로의 도식을 그려내는것에 사용될 수 있고 도식적인 캡쳐 도구는 그리고 결과물인 회로도를 캡쳐하고 회로도의 연결성과 구성요소를 나타내는 하나 또는 이상의 네트리스트(컴퓨터 판독 가능 매체에 저장되는)를 생성하는데 사용될 수 있다. 캡쳐된 회로 도는 그리고 테스팅과 검증을 위해 한번 또는 그 이상 실시되는 시뮬레이션의 대상이 될 수 있다.
블럭(1408)에서, 하나 또는 이상의 전자 설계 자동화 도구는 집적회로 디바이스의 회로의 물리적 레이아웃을 나타내는 코드를 생성하기 위해 블럭 (1406)에서 만들어진 네트리스트를 사용한다. 이 프로세스는 예를 들면, 집적회로 디바이스의 회로의 각 소자의 위치를 결정 또는 고정하기 위해 네트리스트를 사용하는 배치 도구를 포함할 수 있다. 더하여, 라우팅 도구는 네트리스트(들)에 따른 회로 소자를 연결하기에 필요되는 와이어를 추가하고 라우트 하기 위해 배치 프로세스에 의존한다. 결과물인 코드는 집적회로 디바이스의 삼차원 모델을 나타낸다. 이 코드는 예를 들면 그래픽 데이터베이스 시스템 II(GDSII) 형식과 같은, 데이터베이스 파일 형식으로 나타내어 질 수 있다. 이 형식에 있는 데이터는 일반적으로 기하학적인 모양, 텍스트 라벨, 및 계층 아키텍쳐 형태의 회로 레이아웃에 관한 다른 정보를 나타낸다.
블럭 (1410)에서, 물리적 레이아웃 코드(예를 들면, GDSII 코드)는 집적회로 디바이스를 제조하기 위해 생산 시설의 제조 도구를 구성하거나 아니면 개조하기 위해(예를 들면 마스크 워크를 통한) 물리적 레이아웃 코드를 사용하는 생산 시설에 제공된다. 즉, 물리적 레이아웃 코드는 생산 시설 또는 그곳에서 수행되는 생산 동작의 도구의 작동의 전부 또는 부분을 제어하는 하나 또는 이상의 컴퓨터 시스템에 프로그램 될 수 있다.
특정 활동 또는 디바이스의 부분이 요구되지 않을 수 있어 일반적인 설명에서 상술된 모든 활동들 또는 소자들 전부가 요구되지 않고, 설명된 것에 추가로 하나 또는 이상의 활동이 더 수행되거나 소자들이 포함될 수 있음을 주의해야 한다. 또 더하여, 활동들이 기재된 순서가 반드시 수행되는 순서일 필요는 없다.
또한, 특정 실시예를 참조하며 개념들이 설명되었다. 하지만, 그 기술 분야에서 통상의 지식을 가진 자는 이하의 청구항들에 의해 정해지는 본 발명의 범위에서 벗어나지 않고 다양한 수정들 및 변경들이 만들어질 수 있음을 알것이다. 따라서, 명세서와 도면들은 한정적인 의미 보다는 예시로 고려될 것이며, 모든 그런 수정들은 본 발명의 범위 내에 포함되는 것으로 의도된 것이다.
이득들, 다른 장점들, 및 문제들의 해결책들은 특정 실시예들을 고려하여 위에서 설명되었다. 그러나, 발생할 또는 더 확연해질 이득, 장점, 또는 해결책을 야기하는 어느 이득들, 장점들, 문제들에 대한 해결책들, 및 어느 특징(들)은 청구항들의 일부 또는 모두의 매우 중요하거나, 반드시 요구되거나, 또는 필수적인 특징으로 구성되지 않는다.

Claims (16)

  1. 집적회로(IC) 패키지(105)에 있어서,
    메모리 셀 회로(126); 및
    전기적으로 상기 메모리 셀 회로에 연결되는 하나 또는 이상의 논리 계층들(122)의 집합으로서, 상기 하나 또는 이상의 논리 계층들의 집합은 메타데이터 관리자(134) 및 메모리 인터페이스(130)을 포함하며, 상기 메모리 인터페이스는 상기 메타데이터 관리자에 연결되고 상기 집적회로 패키지 외부의 디바이스(104)와 연결 가능하고, 상기 메타데이터 관리자는 상기 집적회로 패키지에 저장된 메타데이터를 관리하고 상기 메타데이터는 상기 디바이스에 대한 상기 메모리 셀 회로에 저장된 연산 데이터와 연관되는, 상기 하나 또는 이상의 논리 계층들의 집합을 포함하는, 집적회로 패키지.
  2. 제 1항에 있어서,
    상기 메모리 셀 회로를 구현함에 있어서 적층형 메모리 계층들(120)을 더 포함하는, 집적회로 패키지.
  3. 제 2항에 있어서,
    상기 메타데이터 관리자는 상기 디바이스로부터의 메모리 접근 요구(306)에 응답하여 적어도 하나의 메타데이터 관리 연산을 수행하는, 집적회로 패키지.
  4. 제 3항에 있어서,
    상기 메타데이터는 특정한 메모리 주소 범위(memory address range)와 연관된 메모리 활용 메트릭(804)을 포함하며; 및
    상기 적어도 하나의 메타데이터 관리 연산은 상기 특정 메모리 주소 범위와 상기 메모리 접근 요구에 의해 식별된 메모리 주소가 합치함에 응답하여 상기 메모리 활용 메트릭의 업데이트를 포함하는, 집적회로 패키지.
  5. 제 2항에 있어서,
    상기 메타데이터 관리자는 상기 디바이스로부터의 메타데이터 명령어(310)에 응답하여 메타데이터 관리 연산 중 적어도 하나를 수행하는, 집적회로 패키지.
  6. 제 2항에 있어서:
    상기 메타데이터는 상기 메모리 셀 회로에 저장되며; 및
    상기 메모리 인터페이스는 상기 메모리 셀 회로로부터 상기 메타데이터에 접근하고 상기 디바이스의 요구에 응답하여 접근된 상기 메타데이터를 상기 디바이스에 제공하는, 집적회로 패키지.
  7. 제 6항에 있어서,
    상기 메타데이터 관리자는 상기 메타데이터가 저장된 상기 메모리 셀 회로의 메모리 주소를 상기 디바이스에 제공하고; 및
    상기 요구는 상기 메모리 주소를 포함하는, 집적회로 패키지.
  8. 제 2항에 있어서,
    상기 메타데이터는 상기 적어도 하나 또는 이상의 논리 계층들의 집합내 저장 요소(304) 중 적어도 하나에 저장되는, 집적회로 패키지.
  9. 제 2항에 있어서,
    상기 메타데이터 관리자는 상기 디바이스로부터 시그널링(signaling)과 무관한 메타데이터 관리 연산중 적어도 하나를 수행하는, 집적회로 패키지.
  10. 방법으로서:
    집적 회로(IC)(105)를 제공하는 단계로서, 상기 집적 회로(IC)(105)는 적층형 메모리 계층들(120)의 집합을 포함하고, 메모리 셀 회로(126)를 포함하며, 그리고 상기 적층형 메모리 계층들의 집합과 전기적으로 연결되는 하나 또는 이상의 논리 계층들(122)의 집합을 포함하고, 상기 하나 또는 이상의 논리 계층들의 집합은 상기 하나 또는 이상의 적층형 메모리 계층들의 집합의 상기 메모리 셀 회로와 연결된 메타데이터 관리자(134)를 포함하고, 상기 메타데이터 관리자와 연결되며 집적회로 외부의 디바이스(104)와 연결되는 메모리 인터페이스(130)를 포함하는, 상기 집적 회로(IC)를 제공하는 단계;
    상기 디바이스를 위한 메모리 접근을 수행하기 위해 상기 메모리 인터페이스를 동작시키는 단계; 및
    상기 메타데이터 관리자는 상기 집적회로에 저장된 메타데이터를 관리하는 단계를 포함하는, 방법.
  11. 제 10항에 있어서,
    상기 집적회로는 상기 메모리 셀 회로를 구현함에 있어서 적층형 메모리 계층들의 집합을 포함하는, 방법.
  12. 제 11항에 있어서,
    상기 메타데이터를 관리하는 단계는 상기 디바이스로부터의 메모리 접근 요구(306)에 응답하여 적어도 하나의 메타데이터 관리 연산을 수행하는 단계를 포함하는, 방법.
  13. 제 12항에 있어서,
    상기 적어도 하나의 메타데이터 관리 연산은,
    특정 메모리 주소 범위와 상기 메모리 접근 요구에 의해 식별된 메모리 주소 사이의 합치에 응답하여 집적회로에 저장된 메모리 활용 메트릭(804)를 업데이트하는 단계;
    상기 메모리 접근 요구에 의해 식별된 메모리 주소와 함께 상기 집적회로에 저장되는 메모리 로그 정보(902)를 업데이트하는 단계;
    상기 메모리 접근 요구에 의해 식별된 메모리 주소에 저장된 연산 데이터(1104, 1105)와 연관된 오류 검출 값(1006, 1106)을 산출 및 검증 중 적어도 하나 단계로서, 상기 오류 검출 값은 패러티 값, 체크섬, 및 오류 교정 코드 중 적어도 하나를 포함하는, 방법.
  14. 제 11항에 있어서,
    상기 메타데이터를 관리하는 단계는 상기 디바이스로부터의 메타데이터 명령어(310)에 응답하여 적어도 하나의 메타데이터 관리 연산을 수행하는 단계를 포함하는, 방법.
  15. 제 14항에 있어서,
    상기 적어도 하나의 메타데이터 관리 연산은:
    상기 메타데이터 명령에 의해 식별된 가상 주소를 물리적 주소로 변환하기 위해 상기 집적회로에 저장된 주소 변환 정보(704)에 접근하는 단계;
    상기 메타데이터 관리자에 의해 수행될 메모리 활용 프로파일링 연산의 적어도 하나의 파라미터를 구성하는 단계;
    상기 메타데이터 관리자에 의해 수행될 메모리 활용 프로파일링 연산의 적어도 하나의 프로파일 메트릭(804)를 재설정하는 단계;
    상기 메타데이터 관리자에 의해 수행될 메모리 로깅 연산의 적어도 하나의 파라미터(802)를 구성하는 단계;
    상기 디바이스로의 출력을 위해 상기 집적회로에 저장된 메모리 로그 정보(902)에 접근하는 단계; 및
    연산 데이터와 연관된 적어도 하나의 가비지 컬렉션 속성을 수정하는 단계 중 적어도 하나를 포함하는, 방법.
  16. 시스템으로서:
    적층형 메모리 디바이스(102)는:
    메모리 셀 회로(126)을 포함하는 적층형 메모리 계층들(120)의 집합; 및
    상기 적층형 메모리 계층들의 집합과 전기적으로 연결되는 하나 또는 이상의 논리 계층들(122)의 집합으로서, 상기 하나 또는 이상의 논리 계층들의 집합은 메타데이터 관리자(134) 및 메모리 인터페이스(130)을 포함하며, 상기 메타데이터 관리자는 상기 적층형 메모리 디바이스에 저장된 메타데이터를 관리하는, 상기 하나 또는 이상의 논리 계층들의 집합을 포함하고; 및
    메모리 인터페이스를 통해 상기 적층형 메모리 디바이스와 연결된 프로세스 디바이스(104)로서, 상기 프로세스 디바이스는 적층형 메모리의 집합에 저장을 위해 연산 데이터(1004, 1105)를 제공하며 상기 연산 데이터와 연관된 메타데이터에 대하여 상기 메타데이터 관리자에 의한 적어도 하나의 메타데이터 관리 연산의 수행을 개시하기 위해 상기 적층형 메모리 디바이스에 메타데이터 명령어(310)을 발행하는, 상기 프로세스 디바이스를 포함하는, 시스템.
KR1020157005299A 2012-08-06 2013-08-05 메타데이터 관리를 갖는 적층형 메모리 디바이스 KR101931297B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/567,945 2012-08-06
US13/567,945 US9697147B2 (en) 2012-08-06 2012-08-06 Stacked memory device with metadata management
PCT/US2013/053596 WO2014025676A1 (en) 2012-08-06 2013-08-05 Stacked memory device with metadata management

Publications (2)

Publication Number Publication Date
KR20150042220A true KR20150042220A (ko) 2015-04-20
KR101931297B1 KR101931297B1 (ko) 2018-12-20

Family

ID=48998713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157005299A KR101931297B1 (ko) 2012-08-06 2013-08-05 메타데이터 관리를 갖는 적층형 메모리 디바이스

Country Status (7)

Country Link
US (1) US9697147B2 (ko)
EP (1) EP2880543A1 (ko)
JP (1) JP2015528599A (ko)
KR (1) KR101931297B1 (ko)
CN (1) CN104541257B (ko)
IN (1) IN2015DN00920A (ko)
WO (1) WO2014025676A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190143214A (ko) * 2018-06-20 2019-12-30 연세대학교 산학협력단 가상화 시스템의 메모리 관리 장치 및 그 방법
WO2022165479A1 (en) * 2021-01-27 2022-08-04 Micron Technology, Inc. Metadata storage at a memory device

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8922243B2 (en) * 2012-12-23 2014-12-30 Advanced Micro Devices, Inc. Die-stacked memory device with reconfigurable logic
US9065722B2 (en) 2012-12-23 2015-06-23 Advanced Micro Devices, Inc. Die-stacked device with partitioned multi-hop network
US9619167B2 (en) 2013-11-27 2017-04-11 Intel Corporation System and method for computing message digests
US9436823B1 (en) * 2013-12-17 2016-09-06 Google Inc. System and method for detecting malicious code
US20150279431A1 (en) 2014-04-01 2015-10-01 Micron Technology, Inc. Stacked semiconductor die assemblies with partitioned logic and associated systems and methods
US9639646B2 (en) * 2014-07-22 2017-05-02 Xilinx, Inc. System-on-chip intellectual property block discovery
US10353775B1 (en) * 2014-08-06 2019-07-16 SK Hynix Inc. Accelerated data copyback
US10002043B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US10002044B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US9984769B2 (en) * 2014-10-30 2018-05-29 Research & Business Foundation Sungkyunkwan University 3D memory with error checking and correction function
US10074417B2 (en) * 2014-11-20 2018-09-11 Rambus Inc. Memory systems and methods for improved power management
US9626311B2 (en) * 2015-01-22 2017-04-18 Qualcomm Incorporated Memory controller placement in a three-dimensional (3D) integrated circuit (IC) (3DIC) employing distributed through-silicon-via (TSV) farms
US9727395B2 (en) * 2015-07-01 2017-08-08 International Business Machines Corporation Robust and adaptable management of event counters
US9916091B2 (en) * 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture
US9892800B2 (en) 2015-09-30 2018-02-13 Sunrise Memory Corporation Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US9842651B2 (en) 2015-11-25 2017-12-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin film transistor strings
US10121553B2 (en) 2015-09-30 2018-11-06 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays
US10013212B2 (en) * 2015-11-30 2018-07-03 Samsung Electronics Co., Ltd. System architecture with memory channel DRAM FPGA module
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
BR112018013438A2 (pt) * 2015-12-29 2019-04-24 Amazon Technologies, Inc. tecnologias de rede
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US9892767B2 (en) * 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
CN111384052B (zh) * 2016-03-07 2022-09-27 杭州海存信息技术有限公司 含有三维存储阵列的分布式模式处理器
JP6719950B2 (ja) 2016-04-15 2020-07-08 キヤノン株式会社 データ送信方法、プログラム、データ送信装置、リソグラフィ装置、及び物品の製造方法
KR102571497B1 (ko) 2016-05-10 2023-08-29 삼성전자주식회사 멀티 스택 칩 패키지를 포함하는 데이터 저장 장치 및 그것의 동작 방법
CN111210857B (zh) * 2016-06-27 2023-07-18 苹果公司 组合了高密度低带宽和低密度高带宽存储器的存储器系统
US10282292B2 (en) * 2016-10-17 2019-05-07 Advanced Micro Devices, Inc. Cluster-based migration in a multi-level memory hierarchy
CN108241484B (zh) * 2016-12-26 2021-10-15 上海寒武纪信息科技有限公司 基于高带宽存储器的神经网络计算装置和方法
KR102392844B1 (ko) 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
US20180270117A1 (en) * 2017-03-17 2018-09-20 Microchip Technology Incorporated Unified Centralized Network Stack
JP7203054B2 (ja) 2017-06-20 2023-01-12 サンライズ メモリー コーポレイション 3次元nor型メモリアレイアーキテクチャ及びその製造方法
US10692874B2 (en) 2017-06-20 2020-06-23 Sunrise Memory Corporation 3-dimensional NOR string arrays in segmented stacks
US10608008B2 (en) 2017-06-20 2020-03-31 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
US11180861B2 (en) 2017-06-20 2021-11-23 Sunrise Memory Corporation 3-dimensional NOR string arrays in segmented stacks
US10496335B2 (en) * 2017-06-30 2019-12-03 Intel Corporation Method and apparatus for performing multi-object transformations on a storage device
US10489244B2 (en) * 2017-10-03 2019-11-26 Microsoft Technology Licensing, Llc Systems and methods for detecting and correcting memory corruptions in software
US10936221B2 (en) 2017-10-24 2021-03-02 Micron Technology, Inc. Reconfigurable memory architectures
US11281608B2 (en) 2017-12-11 2022-03-22 Micron Technology, Inc. Translation system for finer grain memory architectures
US10475812B2 (en) 2018-02-02 2019-11-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin-film transistor strings
CN108427728A (zh) * 2018-02-13 2018-08-21 百度在线网络技术(北京)有限公司 元数据的管理方法、设备及计算机可读介质
GB2571352B (en) * 2018-02-27 2020-10-21 Advanced Risc Mach Ltd An apparatus and method for accessing metadata when debugging a device
CN110347527A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 一种校验和状态的判定方法、系统、装置及可读存储介质
US10733046B2 (en) * 2018-04-20 2020-08-04 Micron Technology, Inc. Transaction metadata
WO2019221902A1 (en) * 2018-05-17 2019-11-21 Lightmatter, Inc. Optically interfaced stacked memories and related methods and systems
US20200006306A1 (en) * 2018-07-02 2020-01-02 Shanghai Denglin Technologies Co. Ltd Configurable random-access memory (ram) array including through-silicon via (tsv) bypassing physical layer
US10741581B2 (en) 2018-07-12 2020-08-11 Sunrise Memory Corporation Fabrication method for a 3-dimensional NOR memory array
TWI713195B (zh) 2018-09-24 2020-12-11 美商森恩萊斯記憶體公司 三維nor記憶電路製程中之晶圓接合及其形成之積體電路
US11594463B2 (en) * 2018-10-11 2023-02-28 Intel Corporation Substrate thermal layer for heat spreader connection
WO2020118301A1 (en) 2018-12-07 2020-06-11 Sunrise Memory Corporation Methods for forming multi-layer vertical nor-type memory string arrays
CN113383415A (zh) 2019-01-30 2021-09-10 日升存储公司 使用晶片键合的具有嵌入式高带宽、高容量存储器的设备
WO2020167658A1 (en) 2019-02-11 2020-08-20 Sunrise Memory Corporation Vertical thin-film transistor and application as bit-line connector for 3-dimensional memory arrays
US11232208B2 (en) * 2019-02-26 2022-01-25 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for adaptive metadata architecture
CN113853753A (zh) 2019-03-06 2021-12-28 轻物质公司 光子通信平台
US11341046B2 (en) * 2019-08-05 2022-05-24 Micron Technology, Inc. Layer interleaving in multi-layered memory
US12093189B1 (en) * 2019-09-30 2024-09-17 Amazon Technologies, Inc. Memory-side page activity recorder
US11599299B2 (en) * 2019-11-19 2023-03-07 Invensas Llc 3D memory circuit
WO2021127218A1 (en) 2019-12-19 2021-06-24 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor
KR20220137062A (ko) 2020-02-03 2022-10-11 라이트매터, 인크. 광자 웨이퍼 통신 시스템들 및 관련 패키지들
WO2021158994A1 (en) 2020-02-07 2021-08-12 Sunrise Memory Corporation Quasi-volatile system-level memory
CN115413367A (zh) 2020-02-07 2022-11-29 日升存储公司 具有低有效延迟的高容量存储器电路
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
WO2021173209A1 (en) 2020-02-24 2021-09-02 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US12019736B2 (en) 2020-02-27 2024-06-25 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for main memory tag compression
US11705496B2 (en) 2020-04-08 2023-07-18 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional NOR memory string array
JP2022010482A (ja) * 2020-06-29 2022-01-17 キオクシア株式会社 メモリシステム
WO2022047067A1 (en) 2020-08-31 2022-03-03 Sunrise Memory Corporation Thin-film storage transistors in a 3-dimensional array or nor memory strings and process for fabricating the same
US11842777B2 (en) 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11848056B2 (en) 2020-12-08 2023-12-19 Sunrise Memory Corporation Quasi-volatile memory with enhanced sense amplifier operation
CN112783871B (zh) * 2021-03-16 2024-09-10 广东核电合营有限公司 标牌数据处理方法、装置、计算机设备和存储介质
CN117120990A (zh) * 2021-03-31 2023-11-24 超威半导体公司 用于转移分层存储器管理的方法和装置
US11947839B2 (en) * 2021-05-10 2024-04-02 Samsung Electronics Co., Ltd. Storage device, system, and method for customizable metadata
TW202310429A (zh) 2021-07-16 2023-03-01 美商日升存儲公司 薄膜鐵電電晶體的三維記憶體串陣列
US11953724B2 (en) 2021-10-13 2024-04-09 Lightmatter, Inc. Multi-tenant isolation on a multi-reticle photonic communication platform
US20230297499A1 (en) * 2022-01-21 2023-09-21 Nvidia Corporation Locating a memory unit associated with a memory address utilizing a mapper
CN116521576B (zh) * 2023-05-11 2024-03-08 上海合见工业软件集团有限公司 Eda软件数据处理系统

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5391917A (en) 1993-05-10 1995-02-21 International Business Machines Corporation Multiprocessor module packaging
US6189065B1 (en) 1998-09-28 2001-02-13 International Business Machines Corporation Method and apparatus for interrupt load balancing for powerPC processors
US6519674B1 (en) 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
US7308524B2 (en) 2003-01-13 2007-12-11 Silicon Pipe, Inc Memory chain
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
TWI242855B (en) 2004-10-13 2005-11-01 Advanced Semiconductor Eng Chip package structure, package substrate and manufacturing method thereof
US7327600B2 (en) 2004-12-23 2008-02-05 Unity Semiconductor Corporation Storage controller for multiple configurations of vertical memory
US7477535B2 (en) 2006-10-05 2009-01-13 Nokia Corporation 3D chip arrangement including memory manager
GB0620043D0 (en) 2006-10-10 2006-11-22 Univ Belfast Improvements relating to the detection of malicious content in date
KR101533120B1 (ko) 2006-12-14 2015-07-01 램버스 인코포레이티드 멀티 다이 메모리 디바이스
US8423789B1 (en) 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
US7849383B2 (en) * 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US8338267B2 (en) 2007-07-11 2012-12-25 Sematech, Inc. Systems and methods for vertically integrating semiconductor devices
US8156307B2 (en) 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8356138B1 (en) 2007-08-20 2013-01-15 Xilinx, Inc. Methods for implementing programmable memory controller for distributed DRAM system-in-package (SiP)
US7623365B2 (en) 2007-08-29 2009-11-24 Micron Technology, Inc. Memory device interface methods, apparatus, and systems
JP4775969B2 (ja) * 2007-09-03 2011-09-21 ルネサスエレクトロニクス株式会社 不揮発性記憶装置
US8059443B2 (en) 2007-10-23 2011-11-15 Hewlett-Packard Development Company, L.P. Three-dimensional memory module architectures
US8064739B2 (en) 2007-10-23 2011-11-22 Hewlett-Packard Development Company, L.P. Three-dimensional die stacks with inter-device and intra-device optical interconnect
US7930446B2 (en) 2007-12-28 2011-04-19 Intel Corporation Methods and apparatuses for wireless network communication wherein a universal serial bus request block (URB) is generated that will vary parameters that controls wireless transmission commands between devices
US8169808B2 (en) 2008-01-25 2012-05-01 Micron Technology, Inc. NAND flash content addressable memory
US9229887B2 (en) 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US8397084B2 (en) 2008-06-12 2013-03-12 Microsoft Corporation Single instance storage of encrypted data
JP2010021306A (ja) 2008-07-10 2010-01-28 Hitachi Ltd 半導体装置
US7930661B1 (en) 2008-08-04 2011-04-19 Xilinx, Inc. Software model for a hybrid stacked field programmable gate array
US7872936B2 (en) * 2008-09-17 2011-01-18 Qimonda Ag System and method for packaged memory
US8037354B2 (en) * 2008-09-18 2011-10-11 Honeywell International Inc. Apparatus and method for operating a computing platform without a battery pack
US7796446B2 (en) 2008-09-19 2010-09-14 Qimonda Ag Memory dies for flexible use and method for configuring memory dies
US20100162065A1 (en) 2008-12-19 2010-06-24 Unity Semiconductor Corporation Protecting integrity of data in multi-layered memory with data redundancy
US20100157644A1 (en) 2008-12-19 2010-06-24 Unity Semiconductor Corporation Configurable memory interface to provide serial and parallel access to memories
US20100167100A1 (en) * 2008-12-26 2010-07-01 David Roger Moore Composite membrane and method for making
US8032804B2 (en) 2009-01-12 2011-10-04 Micron Technology, Inc. Systems and methods for monitoring a memory system
US8127185B2 (en) 2009-01-23 2012-02-28 Micron Technology, Inc. Memory devices and methods for managing error regions
US8977805B2 (en) 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
US8451014B2 (en) 2009-09-09 2013-05-28 Advanced Micro Devices, Inc. Die stacking, testing and packaging for yield
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
TW201201008A (en) * 2010-03-22 2012-01-01 Mosaid Technologies Inc Composite semiconductor memory device with error correction
US8519739B1 (en) 2010-05-03 2013-08-27 ISC8 Inc. High-speed processor core comprising direct processor-to-memory connectivity
JP2013533571A (ja) 2010-06-25 2013-08-22 シンボリック・ロジック・リミテッド メモリデバイス
US8105875B1 (en) 2010-10-14 2012-01-31 Taiwan Semiconductor Manufacturing Company, Ltd. Approach for bonding dies onto interposers
US8407245B2 (en) 2010-11-24 2013-03-26 Microsoft Corporation Efficient string pattern matching for large pattern sets
US9064715B2 (en) 2010-12-09 2015-06-23 Taiwan Semiconductor Manufacturing Company, Ltd. Networking packages based on interposers
US8615694B2 (en) 2011-02-07 2013-12-24 Texas Instruments Incorporated Interposer TAP boundary register coupling stacked die functional input/output data
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9704766B2 (en) 2011-04-28 2017-07-11 Taiwan Semiconductor Manufacturing Company, Ltd. Interposers of 3-dimensional integrated circuit package systems and methods of designing the same
US20120290793A1 (en) 2011-05-10 2012-11-15 Jaewoong Chung Efficient tag storage for large data caches
US9164147B2 (en) 2011-06-16 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for 3D IC test
GB2493195A (en) 2011-07-28 2013-01-30 St Microelectronics Res & Dev Address translation and routing between dies in a system in package.
JP5524144B2 (ja) 2011-08-08 2014-06-18 株式会社東芝 key−valueストア方式を有するメモリシステム
US8793467B2 (en) 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system
US20130073755A1 (en) 2011-09-20 2013-03-21 Advanced Micro Devices, Inc. Device protocol translator for connection of external devices to a processing unit package
JP5694101B2 (ja) 2011-09-20 2015-04-01 株式会社東芝 メモリ・デバイス、ホスト・デバイス
JP5970078B2 (ja) 2011-12-02 2016-08-17 インテル・コーポレーション デバイス相互接続の変化を可能にする積層メモリ
US8778734B2 (en) 2012-03-28 2014-07-15 Advanced Micro Devices, Inc. Tree based adaptive die enumeration
US9190173B2 (en) 2012-03-30 2015-11-17 Intel Corporation Generic data scrambler for memory circuit test engine
US8546955B1 (en) 2012-08-16 2013-10-01 Xilinx, Inc. Multi-die stack package
US8737108B2 (en) 2012-09-25 2014-05-27 Intel Corporation 3D memory configurable for performance and power
US9515899B2 (en) 2012-12-19 2016-12-06 Veritas Technologies Llc Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190143214A (ko) * 2018-06-20 2019-12-30 연세대학교 산학협력단 가상화 시스템의 메모리 관리 장치 및 그 방법
WO2022165479A1 (en) * 2021-01-27 2022-08-04 Micron Technology, Inc. Metadata storage at a memory device

Also Published As

Publication number Publication date
CN104541257B (zh) 2018-02-09
JP2015528599A (ja) 2015-09-28
EP2880543A1 (en) 2015-06-10
WO2014025676A1 (en) 2014-02-13
CN104541257A (zh) 2015-04-22
IN2015DN00920A (ko) 2015-06-12
US20140040698A1 (en) 2014-02-06
US9697147B2 (en) 2017-07-04
KR101931297B1 (ko) 2018-12-20

Similar Documents

Publication Publication Date Title
KR101931297B1 (ko) 메타데이터 관리를 갖는 적층형 메모리 디바이스
US11086774B2 (en) Address translation for storage device
US9910605B2 (en) Page migration in a hybrid memory device
US9406403B2 (en) Spare memory external to protected memory
US9170948B2 (en) Cache coherency using die-stacked memory device with logic die
US9818455B2 (en) Query operations for stacked-die memory device
US11132300B2 (en) Memory hierarchy using page-based compression
US11722064B2 (en) Address translation for storage device
US11513689B2 (en) Dedicated interface for coupling flash memory and dynamic random access memory
US9477605B2 (en) Memory hierarchy using row-based compression
Ustiugov et al. Design guidelines for high-performance SCM hierarchies
US20160246715A1 (en) Memory module with volatile and non-volatile storage arrays
US20220114115A1 (en) Interleaving of heterogeneous memory targets
Wang et al. A reliability-aware address mapping strategy for NAND flash memory storage systems
US10642684B1 (en) Memory command interleaving
CN115732016A (zh) 存储器装置、存储器控制器和纠正数据错误的方法
US20180089082A1 (en) Cooperative write-back cache flushing for storage devices
US10229057B2 (en) Method and apparatus for avoiding bus contention after initialization failure
Choukse Memory Compression for Higher Effective Capacity and Bandwidth
TW202329106A (zh) 記憶體系統及其操作方法
Asapu Harika et al. International Journal of Trend in Scientific Research and Development (IJTSRD)

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right