KR20210076606A - SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 - Google Patents
SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 Download PDFInfo
- Publication number
- KR20210076606A KR20210076606A KR1020190167984A KR20190167984A KR20210076606A KR 20210076606 A KR20210076606 A KR 20210076606A KR 1020190167984 A KR1020190167984 A KR 1020190167984A KR 20190167984 A KR20190167984 A KR 20190167984A KR 20210076606 A KR20210076606 A KR 20210076606A
- Authority
- KR
- South Korea
- Prior art keywords
- dbi
- data
- memory device
- internal
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/02—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/107—Serial-parallel conversion of data or prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Dram (AREA)
Abstract
SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법이 제공된다. 전자 장치는, 데이터를 출력하는 호스트, 및 데이터를 제공받아 저장하는 메모리를 포함하는 메모리 장치를 포함하되, 호스트는, 메모리 장치 내부의 데이터 병렬화(parallelizing) 방식에 따라 메모리 장치에 제공되는 데이터에 대한 DBI(Data Bus Inversion) 정보를 생성하여 메모리 장치에 제공하고, 메모리 장치는, 호스트로부터 제공받은 DBI 정보에 따라 인코딩한 데이터를 데이터 병렬화 방식에 따라 메모리에 제공한다.
Description
본 발명은 SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법에 관한 것이다.
데이터 버스를 통해 이동하는 데이터 비트들은 데이터의 상태나 데이터 천이의 주파수에 따라 크로스 토크(cross talk), 동시 스위칭 노이즈(Simultaneous Switching Noise: SSN), 상호 심볼 간섭(Inter-Symbol Interference: ISI) 등에 민감할 수 있다. 이러한 부작용들(adverse effects)을 줄이기 위하여, 데이터 버스 반전(Data Bus Inversion: DBI)과 같은 데이터 인코딩 방법이 이용될 수 있다.
한편, 고성능 및 저전력이 요구되는 그래픽, 서버, 슈퍼 컴퓨터, 네트워크 등의 다양한 시스템들을 지원하기 위하여, 멀티 채널 인터페이스 방식의 와이드 입출력을 제공하는 고 대역 메모리(HBM: High-Bandwidth Memory)가 사용되고 있다.
HBM은 복수개의 데이터 비트들로 구성되는 채널에서 예를 들어, 바이트 단위로 DBI를 수행할 수 있다. 이러한 HBM의 동작 속도를 향상시키기 위해 DBI 비트를 결정하는 방법에 대한 연구가 필요하다.
본 발명이 해결하고자 하는 기술적 과제는 데이터 저장 속도가 향상된 전자 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 데이터 저장 속도가 향상된 전자 장치의 데이터 저장 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 데이터 저장 속도가 향상된 메모리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 데이터 저장 속도가 향상될 수 있도록 DBI 비트를 연산하여 메모리 장치에 제공하는 SoC를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 전자 장치는, 데이터를 출력하는 호스트, 및 데이터를 제공받아 저장하는 메모리를 포함하는 메모리 장치를 포함하되, 호스트는, 메모리 장치 내부의 데이터 병렬화(parallelizing) 방식에 따라 메모리 장치에 제공되는 데이터에 대한 DBI(Data Bus Inversion) 정보를 생성하여 메모리 장치에 제공하고, 메모리 장치는, 호스트로부터 제공받은 DBI 정보에 따라 인코딩한 데이터를 데이터 병렬화 방식에 따라 메모리에 제공한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 전자 장치의 데이터 저장 방법은, 메모리 장치가 호스트에 메모리 장치 내부의 데이터 병렬화 방식에 관한 정보를 제공하고, 호스트가 메모리 장치에 제공될 데이터를 기반으로 외부 DBI(external DBI) 비트를 계산하여 메모리 장치에 제공하고, 호스트가 메모리 장치에 저장될 데이터를 외부 DBI 비트를 이용하여 인코딩하여 메모리 장치에 제공하고, 호스트가 메모리 장치에 제공될 데이터와, 메모리 장치로부터 제공받은 데이터 병렬화 방식에 관한 정보를 기반으로 내부 DBI(internal DBI) 비트를 계산하여 메모리 장치에 제공하는 것을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 장치는, 제1 입력 포트를 통해 제공되는 데이터를 저장하는 메모리, 및 외부로부터 제2 입력 포트를 통해 데이터를 제공받고, 제2 입력 포트를 통해 제공된 데이터를 데이터 병렬화 방식에 따라 재배열하여 제1 입력 포트를 통해 메모리에 제공하는 컨트롤 로직을 포함하되, 컨트롤 로직은, 데이터 병렬화 방식에 기반하여 생성된 데이터에 대한 내부 DBI(Internal DBI) 비트를 외부로부터 제공받고, 이를 이용하여 상기 데이터를 인코딩하고, 상기 인코딩된 데이터와 상기 내부 DBI 비트를 상기 메모리에 제공한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 SoC는, 복수의 서브 데이터가 제1 배열에 따라 출력되는 출력 포트, 및 외부로부터 데이터 병렬화 방식에 관한 정보를 제공받고, 제공된 데이터 병렬화 방식에 관한 정보에 기반하여 출력 포트를 통해 출력되는 복수의 서브 데이터에 대한 DBI 비트를 생성하고, 생성된 DBI 비트를 복수의 서브 데이터와 함께 출력하는 DBI 컨트롤러를 포함하되, 데이터 병렬화 방식에 관한 정보는, 복수의 서브 데이터를 제1 배열과 다른 제2 배열로 재배열하는 것과 관련된 정보이고, DBI 비트는 제2 배열로 재배열된 복수의 서브 데이터를 디코딩하는데 이용된다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 2는 도 1의 모드 레지스터 셋트에 저장된 테이블을 도시한 도면이다.
도 3은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 도시한 순서도이다.
도 4 내지 도 10은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
도 11 및 도 12는 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
도 13은 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 14는 도 13에 도시된 전자 장치의 동작을 설명하기 위한 도면이다.
도 15는 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 16은 몇몇 실시예에 따른 전자 장치에 포함된 메모리의 일 예를 도시한 도면이다.
도 2는 도 1의 모드 레지스터 셋트에 저장된 테이블을 도시한 도면이다.
도 3은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 도시한 순서도이다.
도 4 내지 도 10은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
도 11 및 도 12는 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
도 13은 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 14는 도 13에 도시된 전자 장치의 동작을 설명하기 위한 도면이다.
도 15는 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 16은 몇몇 실시예에 따른 전자 장치에 포함된 메모리의 일 예를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
도 1은 몇몇 실시예에 따른 전자 장치의 블록도이다.
도 1을 참조하면, 전자 장치(1)는 호스트(100)와 메모리 장치(200)를 포함한다.
메모리 장치(200)는 컨트롤 로직(210) 및 메모리(260)를 포함할 수 있다. 몇몇 실시예에서, 메모리 장치(200)는 멀티 채널 인터페이스 방식의 와이드 입출력을 제공하는 고 대역 메모리(HBM: High-Bandwidth Memory)일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
비록 도 1에서는, 이해의 편의를 위해, 메모리 장치(200)에 포함된 1개의 메모리(260) 만을 도시하였으나, 실시예들이 도시된 실시예에 제한되는 것은 아니다. 필요에 따라, 메모리 장치(200)는 복수개의 메모리(260)를 포함하고, 컨트롤 로직(210)은 복수 개의 메모리(260)와 멀티 채널 인터페이싱할 수 있다.
메모리(260)는 복수의 입력 포트(DQ0~DQ7)와, 내부 DBI(Internal Data Bus Inversion) 포트(IDBI)와, 메모리 컨트롤러(262)와, 메모리 셀 어레이(264)를 포함할 수 있다.
메모리 컨트롤러(262)는, 메모리(260)의 내부 DBI 포트(IDBI)를 통해 제공된 내부 DBI 정보를 바탕으로, 메모리(260)의 복수의 입력 포트(DQ0~DQ7)를 통해 제공된 데이터를 디코딩할 수 있다. 그리고, 메모리 컨트롤러(262)는 되코딩된 데이터를 메모리 셀 어레이(264)에 포함된 메모리 셀에 저장할 수 있다.
몇몇 실시예에서, 메모리(260)는 예를 들어, DRAM(Dynamic Random Access Memory)을 포함하고, 메모리 셀 어레이(264)에 포함된 메모리 셀은 예를 들어 캐패시터로 이루어진 DRAM 셀을 포함할 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
다른 몇몇 실시예에서, 메모리(260)는 RRAM(Resistive Random Access Memory)(또는 ReRAM), PRAM(Phase Change Random Access Memory), FRAM(Ferroelectric Random Access Memory)을 포함할 수도 있다. 또한 또 다른 몇몇 실시예에서, 메모리(260)는 STT-MRAM(Spin-Transfer Torque Magnetic Random Access Memory), Spin-RAM(Spin Torque Transfer Magnetization Switching RAM) 및 SMT-RAM(Spin Momentum Transfer) 등과 같은 MRAM(Magnetic Random Access Memory) 구조를 포함할 수도 있다.
컨트롤 로직(210)은 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)를 통해 외부(예를 들어, 호스트(100))로부터 데이터를 제공받을 수 있다. 그리고, 컨트롤 로직(210)은 메모리 장치(200)의 외부 DBI(External DBI) 포트(EDBI)를 통해 외부(예를 들어, 호스트(100))로부터 외부 DBI 정보를 제공받을 수 있다. 그리고, 컨트롤 로직(210)은 메모리 장치(200)의 내부 DBI 포트(IDBI)를 통해 외부(예를 들어, 호스트(100))로부터 내부 DBI 정보를 제공받을 수 있다.
컨트롤 로직(210)은 메모리 장치(200)의 외부 DBI 포트(EDBI)를 통해 제공된 외부 DBI 정보를 바탕으로, 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)를 통해 제공된 데이터를 디코딩할 수 있다. 그리고, 컨트롤 로직(210)은 메모리 장치(200)의 내부 DBI 포트(IDBI)를 통해 제공된 내부 DBI 정보를 이용하여 데이터를 인코딩할 수 있다. 그리고, 컨트롤 로직(210)은 내부 DBI 정보에 따라 인코딩된 데이터를 데이터 병렬화 정보(212)에 따라 재배열(예를 들어, 직렬화되어 전송된 데이터를 병렬화하여 재배열)한 후, 재배열된 데이터를 메모리(260)의 복수의 입력 포트(DQ0~DQ7)에 제공할 수 있다.
여기서, 데이터 병렬화 정보(212)는 메모리 장치(200) 내부 데이터 버스에서 데이터를 병렬화(parallelizing)하여 메모리(260)에 제공하는 데이터 병렬화 방식에 관한 정보일 수 있다.
이 때, 컨트롤 로직(210)은 재배열된 데이터를 메모리(260)가 디코딩할 수 있도록 메모리(260)의 내부 DBI 포트(IDBI)에 외부(예를 들어, 호스트(100))로부터 제공받은 내부 DBI 정보를 같이 전달할 수 있다.
즉, 본 실시예에서, 메모리 장치(200)의 컨트롤 로직(210)은 메모리(260)의 복수의 입력 포트(DQ0~DQ7)에 제공되는 데이터에 대한 내부 DBI 정보를 연산하는 하는 것이 아니라, 외부(예를 들어, 호스트(100))로부터 제공받은 내부 DBI 정보를 메모리(260)에게 그대로 전달한다. 이에 따라, 메모리 장치(200) 내에서 내부 DBI 정보를 연산하는 시간이 불필요하기 때문에, 메모리 장치(200) 또는 전자 장치(1)의 데이터 저장 속도가 향상될 수 있다.
몇몇 실시예에서, 외부 DBI 정보는 복수의 외부 DBI 비트를 포함하고, 내부 DBI 정보는 복수의 내부 DBI 비트를 포함할 수 있다. 즉, 외부 DBI 정보는 복수의 외부 DBI 비트의 조합으로 이루어지고, 내부 DBI 정보는 복수의 내부 DBI 비트의 조합으로 이루어질 수 있다. 이에 대한 구체적인 설명은 후술한다.
한편, 도 1에서는 설명의 편의를 위해, 데이터 병렬화 정보(212)가 메모리 장치(200)의 컨트롤 로직(210)에 포함되는 것을 도시하였으나, 실시예들이 이에 제한되는 것은 아니다. 몇몇 실시예에서, 데이터 병렬화 정보(212)는 메모리 장치(200)의 다른 영역(예를 들어, 별도의 저장 영역)에 저장될 수도 있다.
호스트(100)는 메모리 장치(200)에 데이터와 커맨드 등을 제공할 수 있다. 구체적으로, 호스트(100)는 메모리 장치(200)에 데이터 저장을 명령하는 커맨드(예를 들어, 라이트 커맨드(write command))와, 메모리 장치(200)에 저장될 데이터를 제공할 수 있다.
몇몇 실시예에서, 호스트(100)는 예를 들어, SoC(System on Chip)를 포함할 수 있다. 호스트(100)는 비록 상세하게 도시하지는 않았으나, 이러한 동작을 수행하기 위한 호스트 컨트롤러를 포함할 수 있다. 몇몇 실시예에서, 호스트(100)는 예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 또는 가속 처리 장치(APU), 애플리케이션 프로세서(AP) 등을 포함할 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
호스트(100)는 복수의 출력 포트(DQ0~DQ7), 외부 DBI 포트(EDBI), 내부 DBI 포트(IDBI), DBI 컨트롤러(110) 및 모드 레지스터 셋(Mode Register Set)(120)을 포함할 수 있다.
호스트(100)는 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)에 저장될 데이터를 출력할 수 있다.
DBI 컨트롤러(110)는 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)에 제공되는 데이터에 대한 DBI 정보를 연산하고, 연산된 DBI 정보에 따라 메모리 장치(200)에 제공되는 데이터를 인코딩할 수 있다.
구체적으로, DBI 컨트롤러(110)는 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)에 제공되는 데이터를 메모리 장치(200)의 컨트롤 로직(210)이 디코딩하기 위한 외부 DBI 정보를 생성할 수 있다. 그리고, DBI 컨트롤러(110)는 생성된 외부 DBI 정보를 호스트(100)의 외부 DBI 포트(EDBI)를 통해 메모리 장치(200)에 제공하고, 외부 DBI 정보를 이용하여 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)에 제공되는 데이터를 인코딩할 수 있다. 이렇게 인코딩된 데이터는 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)에 제공될 수 있다.
예를 들어, 데이터가 복수의 서브 데이터로 구성되고, 호스트(100)가 복수의 서브 데이터를 제1 배열(예를 들어, 직렬화 배열)에 따라 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)에 제공할 때, DBI 컨트롤러(110)는 메모리 장치(200)의 컨트롤 로직(210)이 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩할 수 있는 외부 DBI 정보를 생성하고, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)의 복수의 입력 포트(DQ0~DQ7)에 제공되는 데이터를 인코딩할 수 있다. 그리고, DBI 컨트롤러(110)는 생성된 외부 DBI 정보를 호스트(100)의 외부 DBI 포트(EDBI)를 통해 메모리 장치(200)에 제공하고, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 인코딩된 데이터를 메모리 장치(200)에 제공할 수 있다.
다음, DBI 컨트롤러(110)는 메모리(260)의 복수의 입력 포트(DQ0~DQ7)에 제공되는 데이터를 메모리(260)의 메모리 컨트롤러(262)가 디코딩하기 위한 내부 DBI 정보를, 데이터 병렬화 정보(212)를 바탕으로 생성할 수 있다. 그리고, DBI 컨트롤러(110)는 생성된 내부 DBI 정보를 호스트(100)의 내부 DBI 포트(IDBI)를 통해 메모리 장치(200)에 제공할 수 있다.
예를 들어, 데이터가 복수의 서브 데이터로 구성되고, 컨트롤 로직(210)이 복수의 서브 데이터를 앞서 설명한 제1 배열이 아닌 제2 배열(예를 들어, 병렬화 배열)에 따라 메모리(260)의 복수의 입력 포트(DQ0~DQ7)에 제공할 때, DBI 컨트롤러(110)는 메모리(262)의 메모리 컨트롤러(262)가 메모리(260)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩할 수 있는 내부 DBI 정보를 생성할 수 있다. 그리고, DBI 컨트롤러(110)는 생성된 내부 DBI 정보를 호스트(100)의 내부 DBI 포트(IDBI)를 통해 메모리 장치(200)에 제공할 수 있다. 이를 제공받은 메모리 장치(200)의 컨트롤 로직(210)은 내부 DBI 정보를 메모리(260)에 제공할 데이터를 인코딩하는데 이용하고, 메모리(260)에서 수신된 데이터를 디코딩할 수 있도록 호스트(100)로부터 전달받은 내부 DBI 정보를 메모리(260)에 제공할 수 있다.
몇몇 실시예에서, 메모리 장치(200)에 저장된 데이터 병렬화 정보(212)는 앞서 설명한 제1 배열된 서브 데이터를 제2 배열된 서브 데이터로 변환하는 방법에 관한 정보일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
호스트(100)의 DBI 컨트롤러(110)는 메모리 장치(200)로부터부터 데이터 병렬화 정보(212)를 제공받고, 제공받은 데이터 병렬화 정보(212)와 모드 레지스터 셋트(120)에 저장된 테이블을 참조하여, 내부 DBI 정보를 생성할 수 있다. 이하 도 2를 참조하여, 보다 구체적으로 설명한다.
도 2는 도 1의 모드 레지스터 셋트에 저장된 테이블을 도시한 도면이다.
도 2를 참조하면, 모드 레지스터 셋트(120)는 데이터 병렬화 방식에 따른 DBI 스킴이 정의된 테이블(122)을 저장할 수 있다. 구체적으로, 테이블(122)은 데이터 매핑 케이스 별로 서로 다른 내부 DBI 스킴을 포함할 수 있다. 예를 들어, 메모리 장치(도 1의 200)로부터 제공받은 메모리 장치(도 1의 200)의 내부 데이터 병렬화 방식이 제1 케이스(case 1)인 경우, DBI 컨트롤러(도 1의 110)는 제1 스킴(scheme 1)을 사용하여 내부 DBI 정보를 생성하고, 메모리 장치(도 1의 200)로부터 제공받은 메모리 장치(도 1의 200)의 내부 데이터 병렬화 방식이 제2 케이스(case 2)인 경우, DBI 컨트롤러(도 1의 110)는 제2 스킴(scheme 2)을 사용하여 내부 DBI 정보를 생성할 수 있다.
몇몇 실시예에서, DBI 컨트롤러(도 1의 110)가 이처럼 메모리 장치(도 1의 200)의 내부 데이터 병렬화 방식에 따라 내부 DBI 스킴을 결정하는 것은 예를 들어, 소프트웨어에 의해 수행될 수 있다. 또한, 다른 몇몇 실시예에서, DBI 컨트롤러(도 1의 110)가 이처럼 메모리 장치(도 1의 200)의 내부 데이터 병렬화 방식에 따라 내부 DBI 스킴을 결정하는 것은 예를 들어, 퓨즈(fuse)와 같은 하드웨어를 이용하여 수행될 수도 있다.
이처럼 본 실시예에 따른 전자 장치(1)는 메모리(260)에 데이터를 저장할 때, 메모리 장치(200)의 컨트롤 로직(210)이 자신이 데이터를 인코딩하는데 필요한 내부 DBI 연산을 수행하지 않고, 호스트(100)로부터 미리 연산된 내부 DBI 정보를 전달받아 사용하기 때문에, 데이터 저장 시간이 단축될 수 있다.
이하, 도 3 내지 도 10을 참조하여, 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법에 대해 설명한다.
도 3은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 도시한 순서도이다. 도 4 내지 도 10은 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
먼저 도 3을 참조하면, 데이터 병렬화 방식에 관한 정보를 전송한다(S100).
예를 들어, 도 4를 참조하면, 메모리 장치(200)가 부트 업(boot up)되는 시점에 메모리 장치(200)가 데이터 병렬화 방식에 관한 정보를 호스트(100)에 전송할 수 있다. 하지만, 실시예들이 이에 제한되는 것은 아니며, 메모리 장치(200)는 부트 업 시점이 아닌 다른 시점에 데이터 병렬화 방식에 관한 정보를 호스트(100)에 제공할 수도 있다.
다시 도 3을 참조하면, 데이터 병렬화 방식을 바탕으로 DBI 스킴을 선택한다(S200).
도 5는 데이터 병렬화 방식의 한 예를 도시한 도면이다. 이하, 도 5에 도시된 데이터 병렬화 방식으로 전자 장치가 동작하는 것을 예로 들어, 본 발명의 기술적 사상에 따른 전자 장치의 데이터 저장 방법에 대해 설명한다.
도 1 및 도 5를 참조하면, 데이터는 예를 들어, 연속하는 복수의 서브 데이터(D0~D7)를 포함할 수 있다. 여기서 서브 데이터(D0)는 서브 데이터(D1)보다 먼저 호스트(100)로부터 출력되고, 서브 데이터(D1)은 서브 데이터(D2)보다 먼저 호스트(100)로부터 출력될 수 있다.
몇몇 실시예에서, 데이터는 예를 들어, 바이트 단위로 호스트(100)로부터 메모리 장치(200)에 제공될 수 있다. 이 경우, 서브 데이터들(D0~D7)은 바이트 단위의 데이터를 구성하는 서브 구성요소가 될 수 있다. 또한, 몇몇 실시예에서, 하나의 서브 데이터(예를 들어, D0)는 단위 버스트 랭스(burst length)를 정의할 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
호스트(100)는 출력 포트(DQ0~DQ7) 각각을 통해 외부 DBI 정보에 따라 인코딩된 서브 데이터들(D0~D7)을 순차적으로 출력하고, 메모리 장치(200)는 입력 포트(DQ0~DQ7)를 통해 호스트(100)로부터 순차적으로 출력된 서브 데이터들(D0~D7)을 수신할 수 있다.
한편, 메모리 장치(200)의 컨트롤 로직(210)은 수신된 서브 데이터들(D0~D7)을 외부 DBI 정보에 따라 디코딩한 후, 디코딩된 데이터를 호스트(100)로부터 제공받은 내부 DBI 정보에 따라 인코딩할 수 있다.
그리고, 메모리 장치(200)의 컨트롤 로직(210)은 인코딩된 데이터를 내부 데이터 병렬화 방식에 따라 재배열하여 메모리(260)의 입력 포트(DQ0~DQ7)에 제공할 수 있다. 예를 들어, 컨트롤 로직(210)은 D0, D1, D2, D3, D4, D5, D6, D7 순서로 수신한 서브 데이터들((D0~D7)을 메모리(260)에 도시된 것과 같이 병렬화(parallelizing)하여 제공할 수 있다. 즉, 메모리 장치(200)의 입력 포트(DQ0~DQ7)를 통해 호스트(100)로부터 제공된 서브 데이터들((D0~D7)은 데이터 병렬화 정보(212)에 따라 컨트롤 로직(210)에 의해 재배열되어 메모리(260)에 제공될 수 있다.
도 5에 도시된 것과 같은 데이터 병렬화 방식에 관한 정보를 제공받은 호스트(100)의 DBI 컨트롤러(110)는 도 5에 도시된 데이터 병렬화 방식에 대응하는 내부 DBI 스킴을 선택할 수 있다.
다시 도 3을 참조하면, DBI 정보를 연산한다(S300).
도 1을 참조하면, 예를 들어, 호스트(100)의 DBI 컨트롤러(110)는 선택된 DBI 스킴을 이용하여 DBI 연산을 수행할 수 있다.
몇몇 실시예에서, DBI 컨트롤러(110)는 컨트롤 로직(210)이 메모리 장치(200)의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩하는데 이용되는 외부 DBI 정보를 연산할 수 있다. 또한, DBI 컨트롤러(110)는 메모리 컨트롤러(262)가 메모리(260)의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩하는데 이용되는 내부 DBI 정보를 선택한 내부 DBI 스킴을 이용하여 연산할 수 있다.
먼저, 도 6을 참조하여, DBI 컨트롤러(110)가 외부 DBI 정보를 연산하는 예시에 대해 설명한다.
DBI는 데이터 버스로 전송되는 데이터 비트들 사이의 관계를 먼저 평가하고, 전송에 앞서 데이터 비트들을 일부 또는 전부 반전시키는 것이 이로운지 여부를 판단하는 과정을 거칠 수 있다. 만약 데이터 비트들을 반전시킨 상태로 전송하는 것이 이로우면, 데이터 비트들이 반전되었음을 지시하는 DBI 비트가 하이(high)로 셋팅될 수 있다.
도 1 및 도 6을 참조하면, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)을 통해 출력되는 인접한 서브 데이터들(D0~D7) 간의 토글(toggle) 여부를 바탕으로 외부 DBI 정보를 연산할 수 있다.
구체적으로, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력되는 서브 데이터(D0)와 서브 데이터(D1) 사이에서 발생하는 토글 횟수가 4이상일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 1로 결정하고, 서브 데이터(D0)와 서브 데이터(D1) 사이에서 발생하는 토글 횟수가 4미만일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 0으로 결정할 수 있다.
예를 들어, 호스트(100)의 출력 포트(DQ0, DQ1, DQ2, DQ3, DQ4)를 통해 출력되는 서브 데이터(D0)와 서브 데이터(D1) 사이에서는 토글이 발생하나, 호스트(100)의 출력 포트(DQ5, DQ6, DQ7)를 통해 출력되는 서브 데이터(D0)와 서브 데이터(D1) 사이에서는 토글이 발생하지 않는 경우, DBI 컨트롤러(110)는 외부 DBI 비트(EDBI0)를 1로 결정할 수 있다.
유사하게, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력되는 서브 데이터(D4)와 서브 데이터(D5) 사이에서 발생하는 토글 횟수가 4이상일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI4)를 1로 결정하고, 서브 데이터(D4)와 서브 데이터(D5) 사이에서 발생하는 토글 횟수가 4미만일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI4)를 0으로 결정할 수 있다.
이와 같은 과정을 통해, DBI 컨트롤러(110)는 외부 DBI 정보를 구성하는 외부 DBI 비트들(도 9의 EDBI0~EDBI6)을 결정할 수 있다. 그리고, 이와 같이 결정된 외부 DBI 비트들(도 9의 EDBI0~EDBI6)을 이용하여 데이터를 인코딩할 경우, 인코딩하지 않은 데이터 대비 호스트(100)와 메모리 장치(200) 간의 데이터 전송 과정에서 토글 횟수가 줄어들 수 있다.
다음 도 1 및 도 7을 참조하면, DBI 컨트롤러(110)는, 메모리(260)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신되는 인접한 서브 데이터들(D0~D7) 간의 토글 여부를 바탕으로 내부 DBI 정보를 연산할 수 있다.
구체적으로, DBI 컨트롤러(110)는, 메모리(260)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신되는 서브 데이터(D0)와 서브 데이터(D4) 사이에서 발생하는 토글 횟수가 4이상일 경우, 내부 DBI 정보를 구성하는 내부 DBI 비트(IDBI0)를 1로 결정하고, 서브 데이터(D0)와 서브 데이터(D4) 사이에서 발생하는 토글 횟수가 4미만일 경우, 내부 DBI 정보를 구성하는 내부 DBI 비트(IDBI0)를 0으로 결정할 수 있다.
예를 들어, 메모리(260)의 입력 포트(DQ0, DQ1, DQ2, DQ3, DQ4)를 통해 수신되는 서브 데이터(D0)와 서브 데이터(D4) 사이에서는 토글이 발생하나, 메모리(260)의 입력 포트(DQ5, DQ6, DQ7)를 통해 수신되는 서브 데이터(D0)와 서브 데이터(D4) 사이에서는 토글이 발생하지 않는 경우, DBI 컨트롤러(110)는 내부 DBI 비트(IDBI0)를 1로 결정할 수 있다.
다음 도 1 및 도 8을 참조하면, 유사하게, DBI 컨트롤러(110)는, 메모리(260)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신되는 서브 데이터(D1)와 서브 데이터(D5) 사이에서 발생하는 토글 횟수가 4이상일 경우, 내부 DBI 정보를 구성하는 내부 DBI 비트(IDBI1)를 1로 결정하고, 서브 데이터(D1)와 서브 데이터(D5) 사이에서 발생하는 토글 횟수가 4미만일 경우, 내부 DBI 정보를 구성하는 내부 DBI 비트(IDBI1)를 0으로 결정할 수 있다.
예를 들어, 메모리(260)의 입력 포트(DQ0, DQ1, DQ2)를 통해 수신되는 서브 데이터(D1)와 서브 데이터(D5) 사이에서는 토글이 발생하나, 메모리(260)의 입력 포트(DQ3, DQ4, DQ5, DQ6, DQ7)를 통해 수신되는 서브 데이터(D1)와 서브 데이터(D5) 사이에서는 토글이 발생하지 않는 경우, DBI 컨트롤러(110)는 내부 DBI 비트(IDBI1)를 0으로 결정할 수 있다.
이와 같은 과정을 통해, DBI 컨트롤러(110)는 내부 DBI 정보를 구성하는 내부 DBI 비트들(도 9의 IDBI0~IDBI3)을 결정할 수 있다. 그리고, 이와 같이 결정된 내부 DBI 비트들(도 9의 IDBI0~IDBI3)을 이용하여 데이터를 인코딩할 경우, 인코딩하지 않은 데이터 대비 컨트롤 로직(210)과 메모리(260) 간의 데이터 전송 과정에서 토글 횟수가 줄어들 수 있다.
다시 도 3을 참조하면, 연산된 DBI 정보와 데이터를 전송한다(S400).
예를 들어, 도 1 및 도 9를 참조하면, 호스트(100)는 라이트 커맨드(write command)와 함께, 출력 포트(DQ0~DQ7)를 통해 외부 DBI 정보를 이용하여 인코딩된 서브 데이터들(D0~D7)을 전송하고, 외부 DBI 포트(EDBI)를 통해 외부 DBI 정보(EDBI0~EDBI6)를 전송하고, 내부 DBI 포트(IDBI)를 통해 내부 DBI 정보(IDBI0~IDBI3)를 전송할 수 있다.
도 9에는, 제1 시점(t1)에 서브 데이터(D0)를 전송하고, 제2 시점(t2)에, 서브 데이터(D1), 외부 DBI 비트(EDBI0), 내부 DBI 비트(IDBI0)를 전송하고, 제3 시점(t3)에, 서브 데이터(D2), 외부 DBI 비트(EDBI1), 내부 DBI 비트(IDBI1)를 전송하고, 제4 시점(t4)에, 서브 데이터(D3), 외부 DBI 비트(EDBI2), 내부 DBI 비트(IDBI2)를 전송하고, 제5 시점(t5)에, 서브 데이터(D4), 외부 DBI 비트(EDBI3), 내부 DBI 비트(IDBI3)를 전송하고, 제6 시점(t6)에, 서브 데이터(D5), 외부 DBI 비트(EDBI4)를 전송하고, 제7 시점(t7)에, 서브 데이터(D6), 외부 DBI 비트(EDBI5)를 전송하고, 제8 시점(t8)에, 서브 데이터(D7), 외부 DBI 비트(EDBI6)를 전송하는 예가 도시되어 있다. 이와 같이 서브 데이터들(D0~D7), 외부 DBI 정보(EDBI0~EDBI6) 및 내부 DBI 정보(IDBI0~IDBI3)를 전송함으로써, 호스트(100)와 메모리 장치(200) 사이에 불필요한 데이터 전송 시간을 최소화할 수 있다.
하지만, 실시예들이 이에 제한되는 것은 아니며, 전송 방법은 얼마든지 변형되어 실시 가능하다. 예를 들어, 도 10을 참조하면, 호스트(100)는 앞서 9에 도시된 실시예와 달리, 제2 시점(t2), 제4 시점(t4), 제6 시점(t6), 제8 시점(t8)에 각각 내부 DBI 비트들(IDBI0~IDBI3)을 출력할 수도 있다. 이와 같이 내부 DBI 비트들(IDBI0~IDBI3) 전송 간에 여유 시간을 확보함으로써 필요에 따라 추가 정보가 호스트(100)로부터 메모리 장치(200)에 제공될 수 있다.
다시, 도 3을 참조하면, 제공받은 DBI 정보를 이용하여 수신된 데이터를 디코딩하고, 디코딩된 데이터를 저장한다(S500).
예를 들어, 도 1을 참조하면, 먼저, 컨트롤 로직(210)은 호스트(100)로부터 제공받은 데이터를 외부 DBI 정보를 이용하여 디코딩할 수 있다. 그리고, 컨트롤 로직(210)은 디코딩된 데이터를 호스트(100)로부터 제공받은 내부 DBI 정보에 따라 인코딩할 수 있다.
그리고, 컨트롤 로직(210)은 인코딩된 데이터를 데이터 병렬화 정보(212)에 따라 재배열하고, 재배열된 데이터를 메모리(260)의 복수의 수신 포트(DQ0~DQ7)를 통해 메모리(260)에 제공할 수 있다.
그리고, 컨트롤 로직(210)은 호스트(100)로부터 제공받은 내부 DBI 정보를 메모리(260)의 내부 DBI 포트(IDBI)를 통해 메모리(260)에 제공할 수 있다.
메모리(260)의 메모리 컨트롤러(262)는 호스트(100)로부터 제공된 내부 DBI 정보를 이용하여 메모리(260)의 복수의 수신 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩하고, 디코딩된 데이터를 메모리 셀 어레이(264)에 저장할 수 있다.
한편, 앞서 도 6에서는 호스트(100)의 복수의 출력 포트(DQ0~DQ7)을 통해 출력되는 인접한 서브 데이터들(D0~D7) 간의 토글 여부를 바탕으로 외부 DBI 정보를 연산하는 예에 대해 설명하였으나, 실시예들이 이에 제한되는 것은 아니다.
이하, 도 11 및 도 12를 참조하여, 다른 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법에 대해 설명한다.
도 11 및 도 12는 몇몇 실시예에 따른 전자 장치의 데이터 저장 방법을 설명하기 위한 도면들이다.
도 1 및 도 11을 참조하면, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력되는 서브 데이터(D0) 중 1 값을 갖는 서브 데이터(D0)의 개수가 몇 개인지에 따라 외부 DBI 정보를 연산할 수도 있다.
구체적으로, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력되는 서브 데이터(D0) 중 1 값을 갖는 서브 데이터(D0)의 개수가 4 이상일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 1로 결정하고, 1 값을 갖는 서브 데이터(D0)의 개수가 4 미만일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 0으로 결정할 수 있다.
예를 들어, 호스트(100)의 출력 포트(DQ0, DQ1, DQ2, DQ3, DQ4)를 통해 출력되는 서브 데이터(D0)는 1 값을 가지나, 호스트(100)의 출력 포트(DQ5, DQ6, DQ7)를 통해 출력되는 서브 데이터(D0)는 0 값을 가지는 경우, DBI 컨트롤러(110)는 외부 DBI 비트(EDBI0)를 1로 결정할 수 있다.
유사하게, DBI 컨트롤러(110)는, 호스트(100)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력되는 서브 데이터(D4) 중 1 값을 갖는 서브 데이터(D4)의 개수가 4 이상일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI4)를 1로 결정하고, 1 값을 갖는 서브 데이터(D4)의 개수가 4 미만일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI4)를 0으로 결정할 수 있다.
이와 같은 과정을 통해, DBI 컨트롤러(110)는 외부 DBI 정보를 구성하는 외부 DBI 비트들(도 12의 EDBI0~EDBI7)을 결정할 수 있다.
다음 도 1 및 도 12를 참조하면, 호스트(100)는 제1 시점(t1)에 서브 데이터(D0), 외부 DBI 비트(EDBI0), 내부 DBI 비트(IDBI0)를 전송하고, 제2 시점(t2)에, 서브 데이터(D1), 외부 DBI 비트(EDBI1), 내부 DBI 비트(IDBI1)를 전송하고, 제3 시점(t3)에, 서브 데이터(D2), 외부 DBI 비트(EDBI2), 내부 DBI 비트(IDBI2)를 전송하고, 제4 시점(t4)에, 서브 데이터(D3), 외부 DBI 비트(EDBI3), 내부 DBI 비트(IDBI3)를 전송하고, 제5 시점(t5)에, 서브 데이터(D4), 외부 DBI 비트(EDBI4)를 전송하고, 제6 시점(t6)에, 서브 데이터(D5), 외부 DBI 비트(EDBI5)를 전송하고, 제7 시점(t7)에, 서브 데이터(D6), 외부 DBI 비트(EDBI6)를 전송하고, 제8 시점(t8)에, 서브 데이터(D7), 외부 DBI 비트(EDBI7)를 전송할 수 있다. 이와 같이 서브 데이터들(D0~D7), 외부 DBI 정보(EDBI0~EDBI7) 및 내부 DBI 정보(IDBI0~IDBI3)를 전송함으로써, 호스트(100)와 메모리 장치(200) 사이에 불필요한 데이터 전송 시간을 최소화하고, 내부 DBI 포트(IDBI)를 통해 추가 정보를 전송할 수 있는 여유 시간을 확보할 수 있다.
도 13은 몇몇 실시예에 따른 전자 장치의 블록도이다. 도 14는 도 13에 도시된 전자 장치의 동작을 설명하기 위한 도면이다. 이하에서는 앞서 설명한 실시예와 중복된 설명은 생략하고, 차이점을 위주로 설명한다.
도 13을 참조하면, 전자 장치(2)는 호스트(300)와 메모리 장치(400)를 포함한다.
메모리 장치(400)는 복수의 입력 포트(DQ0~DQ7), 내부 DBI 포트(IDBI), 컨트롤 로직(410) 및 메모리(460)를 포함할 수 있다.
컨트롤 로직(410)은 데이터 병렬화 방식(412)를 포함할 수 있다. 메모리(460)는 복수의 입력 포트(DQ0~DQ7)와, 내부 DBI 포트(IDBI)와, 메모리 컨트롤러(462)와, 메모리 셀 어레이(464)를 포함할 수 있다.
호스트(300)는 복수의 출력 포트(DQ0~DQ7), 내부 DBI 포트(IDBI), DBI 컨트롤러(310) 및 모드 레지스터 셋(320)을 포함할 수 있다.
즉, 본 실시예에서는 앞서 설명한 실시예와 달리, 호스트(300)와 메모리 장치(400)에 외부 DBI 포트(도 1의 EDBI)가 존재하지 않는다. 이에 따라, 외부 DBI 정보는 외부 DBI 포트(도 1의 EDBI)가 아닌 다른 포트를 통해 호스트(100)로부터 메모리 장치(200)에 제공될 수 있다.
몇몇 실시예에서, 외부 DBI 정보는 도 14에 도시된 것과 같이, 호스트의 복수의 출력 포트(DQ0~DQ7)를 통해 메모리 장치(200)에 제공될 수 있다. 이 때, 외부 DBI 정보를 구성하는 복수의 외부 DBI 비트들(EDBI0~EDBI7)은 각 출력 포트(DQ0~DQ7)에서 출력되는 서브 데이터들(D0~D7) 중 1의 값을 갖는 서브 데이터들(D0~D7)의 개수에 따라 결정될 수 있다.
구체적으로, DBI 컨트롤러(310)는, 호스트(100)의 출력 포트(DQ0)를 통해 출력되는 서브 데이터들(D0~D7) 중 1의 값을 갖는 서브 데이터들(D0~D7)의 개수가 4 이상일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 1로 결정하고, 1의 값을 갖는 서브 데이터들(D0~D7)의 개수가 4 미만일 경우, 외부 DBI 정보를 구성하는 외부 DBI 비트(EDBI0)를 0으로 결정할 수 있다.
예를 들어, 출력 포트(DQ0)를 통해 출력되는 서브 데이터들(D0~D7) 중 서브 데이터(D0, D2)는 1의 값을 가지나, 서브 데이터(D1, D3~D7)는 0의 값을 갖는 경우, DBI 컨트롤러(310)는 외부 DBI 비트(EDBI0)를 0으로 결정할 수 있다. 또한, 출력 포트(DQ1)를 통해 출력되는 서브 데이터들(D0~D7) 중 서브 데이터(D0~D6)는 1의 값을 가지나, 서브 데이터(D7)는 0의 값을 갖는 경우, DBI 컨트롤러(310)는 외부 DBI 비트(EDBI1)를 1로 결정할 수 있다.
이렇게 결정된 외부 DBI 비트들(EDBI0~EDBI7)은 도시된 것과 같이, 호스트의 복수의 출력 포트(DQ0~DQ7)를 통해 외부 DBI 정보를 이용하여 인코딩된 서브 데이터들(D0~D7)에 연속하도록 메모리 장치(200)에 제공될 수 있다.
이처럼 본 실시예에 따른 전자 장치(2)의 경우, 호스트(300)와 메모리 장치(400)의 입출력 포트 수를 줄임으로써, 전자 장치(2)의 크기가 소형화될 수 있다.
도 15는 몇몇 실시예에 따른 전자 장치의 블록도이다. 이하에서도 앞서 설명한 실시예들과 중복된 설명은 생략하고, 차이점을 위주로 설명한다.
도 15를 참조하면, 전자 장치(3)는 호스트(500)와 메모리 장치(600)를 포함한다.
메모리 장치(600)는 복수의 입력 포트(DQ0~DQ7), 통합(universial) DBI 포트(UDBI), 컨트롤 로직(610) 및 메모리(660)를 포함할 수 있다.
컨트롤 로직(610)은 데이터 병렬화 방식(612)를 포함할 수 있다. 메모리(660)는 복수의 입력 포트(DQ0~DQ7)와, 통합 DBI 포트(UDBI)와, 메모리 컨트롤러(662)와, 메모리 셀 어레이(664)를 포함할 수 있다.
호스트(500)는 복수의 출력 포트(DQ0~DQ7), 통합 DBI 포트(UDBI), DBI 컨트롤러(510) 및 모드 레지스터 셋(520)을 포함할 수 있다.
본 실시예에서, DBI 컨트롤러(510)는, 데이터 병렬화 방식(612)를 제공받아, 앞서 설명한 외부 DBI 정보와 내부 DBI 정보를 모두 고려한 통합 DBI 정보를 호스트(500)의 통합 DBI 포트(UDBI)를 통해 출력할 수 있다. 또한, DBI 컨트롤러(510)는, 통합 DBI 정보를 이용하여 인코딩된 데이터를 호스트(500)의 복수의 출력 포트(DQ0~DQ7)를 통해 출력할 수 있다.
메모리 장치(600)의 컨트롤 로직(612)은 호스트(100)로부터 통합 DBI 정보를 제공받아 메모리 장치(600)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩할 수 있다. 또한, 메모리(660)의 메모리 컨트롤러(662)도 이러한 통합 DBI 정보를 제공받아 메모리(660)의 복수의 입력 포트(DQ0~DQ7)를 통해 수신된 데이터를 디코딩할 수 있다.
이처럼 본 실시예에 따른 전자 장치(3)의 경우, 데이터 디코딩에 이용되는 DBI 정보를 내부 DBI 정보와 외부 DBI 정보로 구분하지 않고 통합함으로써, 전자 장치(3)의 데이터 저장 동작의 효율성을 향상시킬 수 있다.
도 16은 몇몇 실시예에 따른 전자 장치에 포함된 메모리의 일 예를 도시한 도면이다.
도 16에 도시된 메모리(860)는 앞서 설명한 전자 장치들(도 1의 1, 도 13의 2, 도 15의 3)의 메모리들(도 1의 260, 도 13의 460, 도 15의 660)에 채용될 수 있다.
도 16을 참조하면, 메모리(860)는 스택된 다수개의 메모리 레이어들(810, 820, 830, 840)을 포함할 수 있다. 메모리(860)는 예를 들어, HBM 일 수 있다. 메모리 레이어들(810, 820, 830, 840)은 채널들이라 불리는 다수개의 독립된 인터페이스들을 구성할 수 있다.
메모리 레이어(810, 820, 830, 840) 각각은, 2 채널들(811-812, 821-822, 831-832, 841-842)을 포함할 수 있다. 도 16에서는, 메모리(860)에 4개의 메모리 레이어들(810, 820, 830, 840)이 스택되어 8개 채널들로 구성되는 예를 도시하나, 실시예들이 이에 제한되는 것은 아니다. 실시예에 따라, 메모리(860)에는 2개 내지 8개 메모리 레이어들이 스택될 수 있다.
각각의 채널(811, 812, 821, 822, 831, 832, 841, 842)은, 채널별로 독립적으로 동작하는 메모리 셀 어레이(843), 메모리 셀 어레이(843)를 각 채널별로 독립적으로 제어하기 위한 입출력 제어부(844), 그리고 메모리 셀 어레이(843)를 위한 채널을 제공하는 채널 패드부(845)를 포함할 수 있다.
몇몇 실시예에서, 입출력 제어부(844)는 앞서 설명한 메모리 컨트롤러(도 1의 262, 도 13의 462, 도 15의 662)의 역할을 수행할 수 있다.
메모리 셀 어레이(843)는 복수의 워드라인들과 비트라인들에 연결된 메모리 셀들을 포함하고, 메모리 셀들은 복수의 메모리 뱅크들 및/또는 메모리 블락들로 그룹화될 수 있다. 메모리 셀 어레이(843)의 영역 내에는 메모리 셀들을 억세스하기 위한 로우 디코더, 칼럼 디코더, 센스앰프 등이 배치될 수 있다.
입출력 제어부(844)는 RAS 제어 로직, CAS 제어 로직 등을 포함할 수 있다. 채널 패드부(845)는 복수의 행들과 복수의 열들로 이루어진 매트릭스 형태로 배열된 패드들을 포함할 수 있다. 채널 패드부(845)의 패드들 각각은 신호 라우팅을 위한 배선을 통하여 전극(848)과 관통 실리콘 비아(TSV, 870)에 연결될 수 있다.
메모리(860)는 스택된 메모리 레이어들(810, 820, 830, 840)의 하단부에 배치된 메모리 버퍼(850)를 더 포함할 수 있다. 메모리 버퍼(850)는 컨트롤 로직으로부터 커맨드, 어드레스, 클럭 및 데이터를 수신하는 입력 버퍼(또는 수신부)를 포함하고, 수신된 커맨드, 어드레스, 클럭 및 데이터를 버퍼링하여 채널들(811, 812, 821, 822, 831, 832, 841, 842)로 제공할 수 있다. 메모리 버퍼(850)는 전극들(848)과 관통 실리콘 비아들(870)을 통하여 채널들(811, 812, 821, 822, 831, 832, 841, 842)에 대해 신호 분배 기능 및 데이터 입출력 기능을 제공할 수 있다. 다른 몇몇 실시예에서, 메모리 버퍼(850)는 앞서 설명한 메모리 컨트롤러(도 1의 262, 도 13의 462, 도 15의 662)의 역할을 수행할 수 있다.
메모리 버퍼(850)는 메모리(860)의 외면에 형성된 도전 수단들, 예컨대 범프들 또는 솔더 볼들을 통해 컨트롤 로직과 통신할 수 있다.
메모리 레이어(810, 820, 830, 840) 각각은 2 채널들(811, 812, 821, 822, 831, 832, 841, 842)을 포함하는데, 싱글 채널은 2개의 의사 채널들(Pseudo Channel)로 구성될 수 있다.
각 채널(811, 812, 821, 822, 831, 832, 841, 842)의 채널 패드부(845)의 영역에 포함되는 데이터 입출력(DQ) 패드들의 수가 예를 들어, 128개라고 가정하면, 각 채널(811, 812, 821, 822, 831, 832, 841, 842)의 채널 패드부(845)의 128개 DQ 패드들은 2개 그룹의 의사 채널들(846, 847)로 나뉘어지고, 의사 채널(846, 847) 각각의 DQ 패드들의 수는 64개가 될 수 있다. 여기서, 각 채널들(811, 812, 821, 822, 831, 832, 841, 842)은 8개의 DQ 패드들을 통해 데이터를 제공받을 수 있다. 이러한 8개의 DQ 패드는 앞서 설명한 메모리(도 1의 260, 도 13의 460, 도 15의 660)의 복수의 입력 포트(도 1의 DQ0~DQ7, 도 13의 DQ0~DQ7, 도 15의 DQ0~DQ7)에 대응될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100, 300, 500: 호스트(SoC)
110. 310, 510: DBI 컨트롤러
200, 400, 600: 메모리 장치(HBM)
210, 410, 610: 컨트롤 로직
260, 460, 660, 860: 메모리
110. 310, 510: DBI 컨트롤러
200, 400, 600: 메모리 장치(HBM)
210, 410, 610: 컨트롤 로직
260, 460, 660, 860: 메모리
Claims (20)
- 데이터를 출력하는 호스트; 및
상기 데이터를 제공받아 저장하는 메모리를 포함하는 메모리 장치를 포함하되,
상기 호스트는, 상기 메모리 장치 내부의 데이터 병렬화(parallelizing) 방식에 따라 상기 메모리 장치에 제공되는 데이터에 대한 DBI(Data Bus Inversion) 정보를 생성하여 상기 메모리 장치에 제공하고,
상기 메모리 장치는, 상기 호스트로부터 제공받은 DBI 정보에 따라 인코딩한 데이터를 상기 데이터 병렬화 방식에 따라 상기 메모리에 제공하는 전자 장치. - 제1항에 있어서,
상기 호스트가 생성하는 DBI 정보는,
상기 메모리 장치에 제공되는 데이터와 관련된 제1 DBI 정보와,
상기 메모리에 제공되는 데이터와 관련된 제2 DBI 정보를 포함하고,
상기 호스트는, 상기 제1 DBI 정보를 이용하여 인코딩된 데이터와 상기 제1 DBI 정보를 상기 메모리 장치에 제공하고,
상기 메모리 장치는, 상기 제1 DBI 정보를 이용하여 상기 호스트로부터 제공받은 데이터를 디코딩하고,
상기 메모리 장치는, 상기 제2 DBI 정보를 상기 메모리에 제공하고,
상기 메모리 장치는, 상기 제2 DBI 정보를 이용하여 인코딩된 데이터를 상기 데이터 병렬화 방식에 따라 상기 메모리에 제공하고,
상기 메모리는, 상기 제2 DBI 정보를 이용하여 상기 메모리 장치로부터 제공받은 데이터를 디코딩하는 전자 장치. - 제2항에 있어서,
상기 메모리 장치는 상기 제2 DBI 정보를 연산하지 않고, 상기 호스트로부터 제공된 상기 제2 DBI 정보를 상기 메모리에 제공하는 전자 장치. - 제1항에 있어서,
상기 메모리 장치는, 상기 데이터 병렬화 방식에 관한 정보를 저장하고,
상기 호스트는, 상기 데이터 병렬화 방식에 따른 DBI 스킴이 정의된 테이블을 저장하는 전자 장치. - 제4항에 있어서,
상기 데이터 병렬화 방식에 관한 정보는, 상기 메모리 장치의 부트 업(boot-up) 시에 상기 호스트에 제공되고,
상기 호스트는 상기 제공받은 데이터 병렬화 방식에 관한 정보를 바탕으로 DBI 스킴을 결정하고, 상기 결정된 스킴을 이용하여 상기 DBI 정보를 생성하고, 상기 DBI 정보로 인코딩된 데이터와 함께 상기 DBI 정보를 상기 메모리 장치에 제공하는 전자 장치. - 제1항에 있어서,
상기 호스트는, 제1 외부 DBI(External DBI) 포트와, 제1 내부 DBI(Internal DBI) 포트를 포함하고,
상기 메모리 장치는, 상기 제1 외부 DBI 포트를 통해 상기 호스트로부터 외부 DBI 비트를 제공받는 제2 외부 DBI 포트와, 상기 제1 내부 DBI 포트를 통해 상기 호스트로부터 내부 DBI 비트를 제공받는 제2 내부 DBI 포트를 포함하고,
상기 메모리는, 상기 제2 내부 DBI 포트를 통해 상기 메모리 장치로부터 상기 내부 DBI 비트를 제공받는 제3 내부 DBI 포트를 포함하는 전자 장치. - 제6항에 있어서,
상기 호스트는 제1 출력 포트를 포함하고,
상기 제1 출력 포트는, 제1 내지 제8 DQ 포트를 포함하고,
상기 데이터는, 상기 제1 내지 제8 DQ 포트 각각을 통해 출력되는 서로 연속하는 제1 및 제2 서브 데이터를 포함하고,
상기 외부 DBI 비트는, 상기 제1 내지 제8 DQ 포트를 통해 상기 제1 서브 데이터를 출력한 후, 상기 제1 내지 제8 DQ 포트 각각을 통해 상기 제2 서브 데이터를 출력하기 위해 발생하는 토글 수에 따라 결정되는 전자 장치. - 제6항에 있어서,
상기 호스트는 제1 출력 포트를 포함하고,
상기 제1 출력 포트는, 제1 내지 제8 DQ 포트를 포함하고,
상기 데이터는, 상기 제1 내지 제8 DQ 포트 각각을 통해 출력되는 서로 연속하는 제1 내지 제8 서브 데이터를 포함하고,
상기 내부 DBI 비트는, 상기 제1 내지 제8 서브 데이터 중 어느 하나의 서브 데이터와 상기 어느 하나의 서브 데이터에 연속하지 않는 다른 하나의 서브 데이터 간 토글 발생 여부를 바탕으로 결정되는 전자 장치. - 제1항에 있어서,
상기 호스트는, 제1 내부 DBI(Internal DBI) 포트를 포함하고,
상기 메모리 장치는, 상기 제1 내부 DBI 포트를 통해 상기 호스트로부터 내부 DBI 비트를 제공받는 제2 내부 DBI 포트를 포함하고,
상기 메모리는, 상기 제2 내부 DBI 포트를 통해 상기 메모리 장치로부터 상기 내부 DBI 비트를 제공받는 제3 내부 DBI 포트를 포함하고,
외부 DBI 비트는, 상기 데이터가 출력되는 상기 호스트의 제1 출력 포트를 통해 상기 메모리 장치에 제공되는 전자 장치. - 제9항에 있어서,
상기 제1 출력 포트는, 제1 내지 제8 DQ 포트를 포함하고,
상기 데이터는, 상기 제1 내지 제8 DQ 포트 각각을 통해 출력되는 서로 연속하는 제1 내지 제8 서브 데이터를 포함하고,
상기 외부 DBI 비트는, 상기 제1 내지 제8 서브 데이터 중 미리 정한 값을 값는 서브 데이터의 개수에 따라 결정되는 전자 장치. - 제10항에 있어서,
상기 내부 DBI 비트는, 상기 제1 내지 제8 서브 데이터 중 어느 하나의 서브 데이터와 상기 어느 하나의 서브 데이터에 연속하지 않는 다른 하나의 서브 데이터 간 토글 발생 여부를 바탕으로 결정되는 전자 장치. - 메모리 장치가 호스트에 상기 메모리 장치 내부의 데이터 병렬화 방식에 관한 정보를 제공하고,
상기 호스트가 상기 메모리 장치에 제공될 데이터를 기반으로 외부 DBI(external DBI) 비트를 계산하여 상기 메모리 장치에 제공하고,
상기 호스트가 상기 메모리 장치에 저장될 데이터를 상기 외부 DBI 비트를 이용하여 인코딩하여 상기 메모리 장치에 제공하고,
상기 호스트가 상기 메모리 장치에 제공될 데이터와, 상기 메모리 장치로부터 제공받은 데이터 병렬화 방식에 관한 정보를 기반으로 내부 DBI(internal DBI) 비트를 계산하여 상기 메모리 장치에 제공하는 것을 포함하는 전자 장치의 데이터 저장 방법. - 제12항에 있어서,
상기 호스트는, 상기 데이터가 출력되는 제1 출력 포트와, 상기 외부 DBI 비트가 출력되는 제2 출력 포트와, 상기 내부 DBI 비트가 출력되는 제3 출력 포트를 포함하고,
상기 제1 내지 제3 출력 포트는 서로 다른 전자 장치의 데이터 저장 방법. - 제13항에 있어서,
상기 데이터는 순차적으로 연속하는 제1 내지 제8 서브 데이터를 포함하고,
상기 제1 내지 제8 서브 데이터가 상기 호스트로부터 상기 메모리 장치에 제공되는 도중, 상기 외부 DBI 비트와 상기 내부 DBI 비트가 상기 호스트로부터 상기 메모리 장치에 제공되는 전자 장치의 데이터 저장 방법. - 제12항에 있어서,
상기 호스트는, 상기 데이터와 상기 외부 DBI 비트가 출력되는 제1 출력 포트와, 상기 내부 DBI 비트가 출력되는 제2 출력 포트를 포함하고,
상기 제1 출력 포트와 상기 제2 출력 포트는 서로 다른 전자 장치의 데이터 저장 방법. - 제12항에 있어서,
상기 메모리 장치는 상기 데이터가 저장되는 메모리를 포함하고,
상기 외부 DBI 비트는 상기 메모리 장치가 상기 호스트로부터 제공받은 데이터를 디코딩하는데 이용되고,
상기 내부 DBI 비트는 상기 메모리가 상기 메모리 장치로부터 제공받은 데이터를 디코딩하는데 이용되는 전자 장치의 데이터 저장 방법. - 제12항에 있어서,
상기 데이터 병렬화 방식에 관한 정보는 상기 메모리 장치의 부트 업시에 상기 호스트에 제공되는 전자 장치의 데이터 저장 방법. - 제17항에 있어서,
상기 호스트는 복수의 내부 DBI 스킴(scheme)이 정의된 테이블이 저장된 MRS(Mode Register Set)를 포함하고,
상기 호스트는 상기 메모리 장치로부터 제공받은 상기 데이터 병렬화 방식을 이용하여 상기 복수의 내부 DBI 스킴 중 적어도 하나를 선택하고, 상기 선택된 내부 DBI을 이용하여 상기 내부 DBI 비트를 계산하는 전자 장치의 데이터 저장 방법. - 제1 입력 포트를 통해 제공되는 데이터를 저장하는 메모리; 및
외부로부터 제2 입력 포트를 통해 상기 데이터를 제공받고, 상기 제2 입력 포트를 통해 제공된 데이터를 데이터 병렬화 방식에 따라 재배열하여 상기 제1 입력 포트를 통해 상기 메모리에 제공하는 컨트롤 로직을 포함하되,
상기 컨트롤 로직은, 상기 데이터 병렬화 방식에 기반하여 생성된 상기 데이터에 대한 내부 DBI(Internal DBI) 비트를 외부로부터 제공받고, 이를 이용하여 상기 데이터를 인코딩하고, 상기 인코딩된 데이터와 상기 내부 DBI 비트를 상기 메모리에 제공하는 메모리 장치. - 복수의 서브 데이터가 제1 배열에 따라 출력되는 출력 포트; 및
외부로부터 데이터 병렬화 방식에 관한 정보를 제공받고, 상기 제공된 데이터 병렬화 방식에 관한 정보에 기반하여 상기 출력 포트를 통해 출력되는 복수의 서브 데이터에 대한 DBI 비트를 생성하고, 상기 생성된 DBI 비트를 상기 복수의 서브 데이터와 함께 출력하는 DBI 컨트롤러를 포함하되,
상기 데이터 병렬화 방식에 관한 정보는, 상기 복수의 서브 데이터를 상기 제1 배열과 다른 제2 배열로 재배열하는 것과 관련된 정보이고,
상기 DBI 비트는 상기 제2 배열로 재배열된 상기 복수의 서브 데이터를 디코딩하는데 이용되는 SoC.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190167984A KR20210076606A (ko) | 2019-12-16 | 2019-12-16 | SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 |
US17/016,883 US11409676B2 (en) | 2019-12-16 | 2020-09-10 | System on chip, memory device, electronic device comprising the SoC and memory device, and method for storing data in the electronic device |
CN202011483842.9A CN112988059A (zh) | 2019-12-16 | 2020-12-16 | 存储器装置、电子装置以及存储数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190167984A KR20210076606A (ko) | 2019-12-16 | 2019-12-16 | SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210076606A true KR20210076606A (ko) | 2021-06-24 |
Family
ID=76317954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190167984A KR20210076606A (ko) | 2019-12-16 | 2019-12-16 | SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11409676B2 (ko) |
KR (1) | KR20210076606A (ko) |
CN (1) | CN112988059A (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210149543A (ko) * | 2020-06-02 | 2021-12-09 | 삼성전자주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US20230154509A1 (en) * | 2021-11-16 | 2023-05-18 | Samsung Electronics Co., Ltd. | Memory device, method of driving the memory device, and method of driving host device |
US11836107B2 (en) * | 2022-03-01 | 2023-12-05 | Apple Inc. | Power consumption control based on random bus inversion |
CN114780457B (zh) * | 2022-03-16 | 2024-07-23 | 长江存储科技有限责任公司 | 存储器及其操作方法、存储器*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3984331B2 (ja) | 1997-08-01 | 2007-10-03 | 松下電器産業株式会社 | 差動伝送方法及び差動伝送回路 |
EP2294770B1 (en) | 2008-06-20 | 2013-08-07 | Rambus, Inc. | Frequency responsive bus coding |
US7899961B2 (en) | 2008-09-02 | 2011-03-01 | Qimonda Ag | Multi-mode bus inversion method and apparatus |
US8260992B2 (en) | 2010-04-12 | 2012-09-04 | Advanced Micro Devices, Inc. | Reducing simultaneous switching outputs using data bus inversion signaling |
US9529749B2 (en) | 2013-03-15 | 2016-12-27 | Qualcomm Incorporated | Data bus inversion (DBI) encoding based on the speed of operation |
TWI609371B (zh) | 2013-03-15 | 2017-12-21 | 積佳半導體股份有限公司 | 涉及群組成10位元之資料信號的動態隨機存取記憶體(dram)裝置及其操作方法 |
US9244875B1 (en) | 2014-07-18 | 2016-01-26 | Qualcomm Incorporated | Systems and methods for transition-minimized data bus inversion |
US10401899B2 (en) | 2016-05-25 | 2019-09-03 | Integrated Device Technology, Inc. | Register clock driver for DDR5 memory |
US10853300B2 (en) | 2017-03-31 | 2020-12-01 | Intel Corporation | Low latency statistical data bus inversion for energy reduction |
KR20210121498A (ko) * | 2020-03-30 | 2021-10-08 | 에스케이하이닉스 주식회사 | 적층형 반도체 장치 및 그의 동작 방법 |
US20200251159A1 (en) * | 2020-04-21 | 2020-08-06 | Intel Corporation | Stacked memory device with end to end data bus inversion |
-
2019
- 2019-12-16 KR KR1020190167984A patent/KR20210076606A/ko active Search and Examination
-
2020
- 2020-09-10 US US17/016,883 patent/US11409676B2/en active Active
- 2020-12-16 CN CN202011483842.9A patent/CN112988059A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11409676B2 (en) | 2022-08-09 |
US20210182223A1 (en) | 2021-06-17 |
CN112988059A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102629405B1 (ko) | 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법 | |
US11169711B2 (en) | Memory module, memory device, and processing device having a processor mode, and memory system | |
KR20210076606A (ko) | SoC, 메모리 장치, 전자 장치 및 전자 장치의 데이터 저장 방법 | |
KR101600447B1 (ko) | 구성 가능한 대역폭 메모리 장치들 및 방법들 | |
US11194579B2 (en) | Memory device supporting skip calculation mode and method of operating the same | |
US8046663B2 (en) | Semiconductor memory device and method for driving the same | |
US20090210600A1 (en) | Memory device with network on chip methods, apparatus, and systems | |
US11474950B2 (en) | Memory controller including plurality of address mapping tables, system on chip, and electronic device | |
US12002543B2 (en) | Memory device for supporting new command input scheme and method of operating the same | |
US9361973B2 (en) | Multi-channel, multi-bank memory with wide data input/output | |
US11869626B2 (en) | Internal and external data transfer for stacked memory dies | |
JP2021068416A (ja) | 信頼性、利用可能性、およびスケーラビリティ(ras)の向上のためのメモリワードライン分離 | |
KR20210094446A (ko) | 신규 커맨드 입력 방식을 지원하는 메모리 장치 및 그것의 동작 방법 | |
US11841763B2 (en) | Semiconductor memory devices with ECC engine defect determination based on test syndrome, test parity, expected decoding status and received decoding status | |
KR20210106226A (ko) | 펑션-인-메모리 동작을 수행하는 적층형 메모리 장치 및 그 동작 방법 | |
US10884656B2 (en) | Performing background functions using logic integrated with a memory | |
US11829614B2 (en) | Semiconductor memory devices and methods of operating semiconductor memory devices | |
US11960776B2 (en) | Data protection for stacks of memory dice | |
KR20230017711A (ko) | 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |