KR20240081027A - 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템 - Google Patents

어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템 Download PDF

Info

Publication number
KR20240081027A
KR20240081027A KR1020220164892A KR20220164892A KR20240081027A KR 20240081027 A KR20240081027 A KR 20240081027A KR 1020220164892 A KR1020220164892 A KR 1020220164892A KR 20220164892 A KR20220164892 A KR 20220164892A KR 20240081027 A KR20240081027 A KR 20240081027A
Authority
KR
South Korea
Prior art keywords
address
offset
bank
command
row
Prior art date
Application number
KR1020220164892A
Other languages
English (en)
Inventor
김지남
고태경
김철민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020220164892A priority Critical patent/KR20240081027A/ko
Priority to US18/209,057 priority patent/US20240177746A1/en
Priority to EP23199513.5A priority patent/EP4379721A1/en
Priority to CN202311597996.4A priority patent/CN118113625A/zh
Publication of KR20240081027A publication Critical patent/KR20240081027A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Human Computer Interaction (AREA)

Abstract

반도체 메모리 시스템은, 제1 뱅크에 스케쥴링한 제1 요청에 대응하는 상기 제1 뱅크에서의 제1 어드레스가 상기 제1 요청 직전에 상기 제1 뱅크로 스케쥴링한 제2 요청에 대응하는 제2 어드레스를 기준으로 오프셋 범위 내일 때 상기 제2 어드레스를 기준으로 상기 제1 어드레스에 대한 오프셋 어드레스를 생성하여 제공하는 메모리 컨트롤러 및 상기 메모리 컨트롤러로부터 상기 제1 어드레스를 수신하고, 상기 제2 어드레스에 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성하는 메모리 장치를 포함할 수 있다. 상기 메모리 장치는 복수의 뱅크를 포함하고, 상기 제1 뱅크는 상기 복수의 뱅크 중 하나일 수 있다.

Description

어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템{ADDRESS DECODING METHOD, AND MEMORY CONTROLLER AND SEMICONDUCTOR MEMORY SYSTEM USING THE SAME}
개시 내용은 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템에 관한 것이다.
반도체 메모리 장치의 대역폭(Bandwidth) 및 동작 주파수는 지속적으로 증가하고 있다. 동작 주파수의 증가에 따라 동작 주파수에 비례하는 대기 전력(Standby Power) 역시 증가하고 있다. 대기 전력을 절감하기 위한 반도체 메모리 장치에 대한 기술이 필요하다.
대기 전력을 감소시켜 저전력 구동이 가능한 반도체 메모리 장치에 관한 기술을 제공하고자 한다.
발명의 한 특징에 따른 반도체 메모리 시스템은, 제1 요청에 대해서 제1 뱅크에 대한 오프셋 어드레스 및 상기 오프셋 어드레스를 지시하는 명령을 생성하여 제공하는 메모리 컨트롤러 및 복수의 뱅크를 포함하고, 상기 복수의 뱅크 중 상기 제1 뱅크에 대하여, 상기 명령에 따라 상기 오프셋 어드레스와 상기 제1 뱅크에 대한 기본 어드레스를 더해 제1 어드레스를 생성하며, 상기 제1 뱅크의 상기 제1 어드레스에 상기 명령에 따른 메모리 동작을 수행하는 메모리 장치를 포함할 수 있다.
상기 메모리 컨트롤러는, 상기 제1 뱅크에 스케쥴링한 상기 제1 요청에 대응하는 상기 제1 뱅크에서의 상기 제1 어드레스가 상기 제1 요청 직전에 상기 제1 뱅크로 스케쥴링한 제2 요청에 대응하는 제2 어드레스를 기준으로 오프셋 범위 내일 때 상기 제2 어드레스를 기준으로 상기 제1 어드레스에 대한 오프셋 어드레스를 생성하고, 상기 기본 어드레스는 상기 제2 어드레스일 수 있다.
상기 명령은, 상기 오프셋 어드레스를 이용하는 활성화 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Activate 명령; 상기 오프셋 어드레스를 이용하는 읽기 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Read 명령; 및 상기 오프셋 어드레스를 이용하는 쓰기 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Write 명령 중 적어도 하나를 포함할 수 있다.
상기 Offset-Activate 명령의 오프셋은 오프셋 행 어드레스이고, 상기 Offset-Read 명령 및 상기 Offset-Write 명령 각각의 오프셋은 오프셋 열 어드레스일 수 있다.
상기 명령은, 상기 오프셋 어드레스를 이용하는 활성화 동작을 지시하고, 명령 구분자 및 뱅크 주소를 포함하는 Offset-Activate 명령, 상기 오프셋 어드레스를 이용하는 읽기 동작을 지시하고, 명령 구분자 및 를 포함하는 Offset-Read 명령, 상기 오프셋 어드레스를 이용하는 쓰기 동작을 지시하고, 명령 구분자 및 뱅크 주소를 포함하는 Offset-Write 명령, 및 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Set-Offset 명령 중 적어도 하나를 포함할 수 있다.
상기 Set-Offset 명령의 오프셋은, 상기 오프셋 어드레스에 대응하는 고정된 값일 수 있다.
상기 메모리 장치는, 상기 명령을 디코딩하여 상기 제1 뱅크에 대한 상기 오프셋 어드레스를 식별하고, 상기 제2 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성하는 어드레스 디코더를 포함할 수 있다.
상기 어드레스 디코더는, 상기 복수의 뱅크 각각에 대해서 마지막으로 구동된 메모리 행 및 메모리 열에 대한 기본 행 어드레스 및 기본 열 어드레스를 저장한 어드레스 테이블, 상기 어드레스 테이블에서 상기 제1 뱅크에 대응하는 기본 행 어드레스 또는 기본 열 어드레스를 중 하나를 제공하는 행/열 선택기, 및 상기 오프셋 어드레스와 상기 행/열 선택기로부터 제공되는 상기 기본 행 어드레스 및 상기 기본 열 어드레스 중 하나를 더하여 상기 제1 어드레스를 생성하는 어드레스 합산기를 포함할 수 있다.
상기 명령이 오프셋 행 어드레스를 지시하는 경우, 상기 행/열 선택기는 상기 기본 행 어드레스를 상기 어드레스 합산기에 제공하고, 상기 어드레스 합산기는 상기 기본 행 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성할 수 있다.
상기 명령이 오프셋 열 어드레스를 지시하는 경우, 상기 행/열 선택기는 상기 기본 열 어드레스를 상기 어드레스 합산기에 제공하고, 상기 어드레스 합산기는 상기 기본 열 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성할 수 있다.
상기 어드레스 디코더는, 상기 제1 어드레스를 상기 어드레스 테이블에서 상기 제1 뱅크에 대응하는 기본 행 어드레스 및 기본 열 어드레스 중 하나로 업데이트하는 어드레스 디먹스를 더 포함할 수 있다.
상기 어드레스 디코더는, 상기 제1 어드레스가 상기 제2 어드레스를 기준으로 오프셋 범위 내에 있을 때, 상기 어드레스 합산기로부터 제공되는 상기 제1 어드레스를 출력하고, 상기 제1 어드레스가 상기 제2 어드레스를 기준으로 오프셋 범위 내에 있지 않을 때, 상기 메모리 컨트롤러로부터 제공되는 상기 제1 어드레스를 출력하는 어드레스 먹스를 더 포함할 수 있다.
상기 메모리 컨트롤러는, 상기 오프셋 어드레스를 생성하고, 상기 오프셋 어드레스에 따른 메모리 동작을 지시하는 명령을 생성하며, 상기 명령을 구성하는 복수의 신호는 칩 선택 신호를 포함하고, 상기 칩 선택 신호를 DDR 방식으로 상기 메모리 장치에 제공할 수 있다.
발명의 다른 특징에 따름 메모리 컨트롤러는, 메모리 장치의 복수의 뱅크에 대응하고, 복수의 요청이 큐 되어 있는 복수의 뱅크 큐 및 상기 복수의 뱅크 큐 각각에 대응하고, 상기 각 뱅크 큐의 복수의 요청에 대한 처리 순서를 스케쥴링하는 복수의 뱅크 스케쥴러를 포함할 수 있다. 상기 복수의 뱅크 스케쥴러 각각은, 대응하는 뱅크에서 마지막으로 구동된 메모리 영역에 대한 마지막 어드레스와 이번 요청에 대응하는 어드레스 간의 어드레스 차가 오프셋 범위 내일 때, 상기 이번 요청에 대응하는 어드레스와 상기 마지막 어드레스 간의 차에 따라 오프셋 어드레스를 생성할 수 있다.
상기 복수의 뱅크 스케쥴러 각각은, 상기 이번 요청에 대응하는 어드레스를 상기 오프셋 어드레스로 생성한 경우, 상기 오프셋 어드레스를 지시하는 명령을 생성할 수 있다.
상기 복수의 뱅크 스케쥴러 각각은, 대응하는 뱅크 큐에 큐잉된 복수의 요청 중 오프셋 어드레스에 해당하는 요청을 풀 어드레스에 해당하는 요청보다 우선 순위로 결정할 수 있다.
상기 복수의 뱅크 스케쥴러 각각은, 상기 대응하는 뱅크에서의 상기 이번 요청에 대응하는 어드레스를 마지막 어드레스로 저장하는 레지스터를 포함할 수 있다.
상기 복수의 뱅크 스케쥴러 각각은, 대응하는 뱅크에서 액티브 상태인 메모리 행이 없는 경우, 상기 대응하는 뱅크에서 마지막으로 액티브 상태였던 메모리 행의 제1 어드레스와 상기 이번 요청에 대응하는 제2 어드레스 간의 차이가 상기 오프셋 범위 내인 경우, 상기 제1 어드레스와 상기 제2 어드레스 간의 차를 오프셋 어드레스로 생성할 수 있다.
발명의 또 다른 특징에 따른 메모리 컨트롤러로부터 제공된 명령 및 어드레스를 디코딩하는 방법은, 상기 명령을 디코딩하여 상기 어드레스가 오프셋 행 어드레스 또는 오프셋 열 어드레스인지 판단하는 단계, 상기 판단 결과 상기 어드레스가 오프셋 행 어드레스를 포함하는 경우, 상기 어드레스에 대응하는 뱅크에서 마지막으로 구동된 메모리 행에 대한 기본 행 어드레스와 및 상기 오프셋 행 어드레스 더해 행 어드레스를 생성하는 단계, 및 상기 어드레스가 오프셋 열 어드레스를 포함하는 경우, 상기 어드레스에 대응하는 뱅크에서 마지막으로 구동된 메모리 열에 대한 기본 열 어드레스 및 상기 오프셋 열 어드레스를 더해 열 어드레스를 생성하는 단계를 포함할 수 있다.
상기 어드레스 디코딩 방법은, 상기 행 어드레스 또는 상기 열 어드레스를 어드레스 테이블에 업데이트는 하는 단계를 더 포함하고, 상기 어드레스 테이블은, 뱅크 별 마지막으로 구동된 메모리 행 및 메모리 열에 대한 기본 행 어드레스 및 기본 열 어드레스를 저장하고 있을 수 있다.
도 1은 일 실시예에 따른 반도체 메모리 시스템의 예시 블록도이다.
도 2는 일 실시예에 따른 반도체 메모리 장치를 나타낸 블록도이다.
도 3은 일 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 4는 일 실시예에 따른 어드레스 디코더를 나타낸 블록도이다.
도 5는 일 실시예에 따른 메모리 장치의 어드레스 디코딩 방법을 나타낸 순서도이다.
도 6은 일 실시예에 따른 복수의 뱅크 중 어떤 뱅크의 메모리 셀 어레이의 일부를 도식적으로 나타낸 도면이다.
도 7은 일 실시예에 따른 메모리 장치의 복수의 핀을 나타낸 도면이다.
도 8은 일 실시예에 따른 가변 오프셋 기반의 명령에 대한 커맨드 구분자를 나타낸 파형도이다.
도 9는 일 실시예에 따른 고정 오프셋 기반의 명령에 대한 커맨드 구분자를 나타낸 파형도이다.
도 10은 일 실시예에 따른 오프셋 어드레싱 방식에 따른 명령 전송을 풀 어드레싱 방식과 비교하여 나타낸 파형도이다.
도 11은 일 실시예에 따른 컴퓨터 시스템을 나타내는 예시 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.
또한, 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다. 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 구성요소는 이러한 용어에 의해 한정되지는 않는다. 이들 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.
도 1은 일 실시예에 따른 반도체 메모리 시스템의 예시 블록도이다.
도 1을 참고하면, 반도체 메모리 시스템(100)은 반도체 메모리 장치(이하, 메모리 장치)(110) 및 메모리 컨트롤러(120)를 포함한다.
메모리 컨트롤러(120)는 메모리 시스템(100) 버스를 통해 전송되는 요청에 따라 메모리 장치(110)에 액세스할 수 있다. 메모리 장치(110)와 메모리 컨트롤러(120)는 두 구성 간의 버스를 통해 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)가 송수신되고, 메모리 컨트롤러(120)로부터 메모리 장치(110)로, 명령(CMD), 어드레스(ADDR), 및 클록(CLK)이 전송될 수 있다.
메모리 장치(110)는 제어 로직 회로(111), 어드레스 디코더(112), 및 복수의 뱅크(113)를 포함한다. 복수의 뱅크(111) 각각은 메모리 셀 어레이(114)를 포함할 수 있다. 메모리 셀 어레이(114)는 복수의 행과 복수의 열에 연결된 복수의 메모리 셀을 포함할 수 있다. 어떤 실시예에서, 행은 워드라인에 의해 정의되고, 열은 비트라인에 의해 정의될 수 있다.
어드레스 디코더(112)는 메모리 컨트롤러(120)로부터 수신한 어드레스가 오프셋 어드레스인 경우, 마지막 어드레스와 오프셋 어드레스에 기초하여 풀 어드레스를 생성할 수 있다. 어드레스(ADDR)는 뱅크 어드레스와 함께 행 어드레스 및 열 어드레스 중 하나를 포함할 수 있다. 오프셋 어드레스는 어드레스(ADDR)가 지시하는 뱅크에 대한 기본 어드레스 대비 이번에 구동될 메모리 영역의 어드레스(행 도는 열) 간의 차를 의미할 수 있다. 기본 어드레스는 해당 뱅크에서 마지막으로 구동된 메모리 영역의 어드레스(행 또는 열)로 설정될 수 있다. 오프셋 어드레스는 오프셋 행 어드레스, 오프셋 열 어드레스, 및 오프셋 행 어드레스 및 오프셋 열 어드레스 중 어느 하나일 수 있다. 어드레스 디코더(112)가 생성한 풀 어드레스는 어드레스(ADDR)가 지시하는 뱅크에서의 행 어드레스, 열 어드레스, 및 행 어드레스와 열 어드레스 중 어느 하나일 수 있다. 메모리 영역은 적어도 하나의 메모리 셀을 포함할 수 있다.
어드레스 디코더(112)는 명령(CMD)을 디코딩하여 어드레스(ADDR)가 오프셋 어드레스인지 또는 풀 어드레스인지에 대한 정보를 획득할 수 있다. 어드레스 디코더(112)는 복수의 뱅크(113) 각각에 대해서 마지막으로 구동된 행과 열에 대한 정보를 기본 어드레스로 저장하는 어드레스 테이블을 포함할 수 있다.
도 1에서는 제어 로직 회로(111)와 어드레스 디코더(112)가 구분되어 도시되어 있으나, 어드레스 디코더(112)는 제어 로직 회로(111)의 일 구성으로 구현될 수 있다. 예를 들어, 메모리 장치(110)는 어드레스 버퍼를 더 포함하고, 제어 로직 회로(111)는 어드레스 버퍼에 수신된 어드레스가 오프셋 어드레스인 경우, 어드레스 버퍼에 수신된 어드레스와 마지막 어드레스를 더하여 풀 어드레스를 생성할 수 있다.
메모리 컨트롤러(120)는 하나의 이상의 프로세서들과 I/O 디바이스들로부터의 복수의 요청을 버스를 통해 수신하고, 복수의 요청 각각에 대한 응답으로 데이터를 메모리 장치(110)에 기입하거나, 메모리 장치(110)로부터 리드한 데이터를 버스를 통해 전송할 수 있다. 메모리 컨트롤러(120)는 복수의 요청 각각을 어드레스 매핑 정책에 따라 제1 어드레스로 변환하고, 정해진 규칙에 따라 복수의 요청 각각을 복수의 뱅크 중 대응하는 뱅크로 스케쥴링하며, 복수의 요청 각각에 대한 복수의 명령(CMD) 각각을 생성할 수 있다. 메모리 컨트롤러(120)는 뱅크 별로 이번 요청에 대응하는 제1 어드레스가 이번 요청 직전의 마지막 요청에 대응하는 제2 어드레스를 기준으로 오프셋 범위 내일 때 제2 어드레스를 기준으로 제1 어드레스에 대한 오프셋 어드레스를 생성할 수 있다(off-set addressing 방식). 메모리 컨트롤러(120)는 그렇지 않은 경우 제1 어드레스를 그대로 사용할 수 있다(full addressing 방식).
메모리 컨트롤러(120)는 어떤 요청에 대한 오프셋 어드레스를 생성하고, 오프셋 어드레스에 따른 메모리 동작을 지시하는 명령(CMD)을 생성할 수 있다. 메모리 컨트롤러(120)는 복수의 뱅크에 대응하는 복수의 명령(CMD)을 스케쥴링하고, 스케쥴링에 따라 메모리 장치(110)로 복수의 명령(CMD) 각각과 그에 대응하는 어드레스(ADDR)를 제공할 수 있다. 이때, 명령(CMD)은 어드레스(ADDR)가 풀 어드레스 및 오프셋 어드레스 중 어느 것인지를 지시할 수 있다. 이하의 설명에서 “어드레스” 및 “풀 어드레스”는 풀 어드레스 방식에 따라 정의되는 어떤 뱅크에서의 메모리 영역에 대한 어드레스를 지시하고, “풀 행 어드레스” 및 “행 어드레스”는 풀 어드레스 방식에 따른 메모리 행의 어드레스를 지시하며, “풀 열 어드레스” 및 “열 어드레스”는 풀 어드레스 방식에 따른 메모리 열의 어드레스를 지시한다. “오프셋 어드레스”는 오프셋 어드레싱 방식에 따라 정의되는 어떤 뱅크에서의 메모리 영역에 대한 어드레스를 지시하고, “오프셋 행 어드레스”는 오프셋 어드레싱 방식에 메모리 행의 어드레스를 지시하며, “오프셋 열 어드레스”는 오프셋 어드레싱 방식에 따른 메모리 열의 어드레스를 지시한다.
메모리 장치(110)는 명령(CMD) 및 어드레스(ADDR)에 따라 복수의 뱅크(113) 중 대응하는 뱅크의 메모리 셀 어레이(114)에 액세스하여 읽기 또는 쓰기 등의 메모리 동작을 수행할 수 있다. 메모리 장치(110)는 클록 신호(CLK)에 기초한 클록 신호들을 생성하고, 생성한 클록 신호들을 이용하여 읽기 및 쓰기 동작을 제어할 수 있다. 읽기 동작에 따라 복수의 뱅크(113)의 메모리 셀 어레이(114)에서 리드된 데이터가 데이터 신호(DQ)로 구현되어 메모리 컨트롤러(120)로 전달되고, 쓰기 동작에 따라 메모리 컨트롤러(120)에서 전달된 데이터 신호(DQ)가 메모리 셀 어레이(114)에 데이터로 기입될 수 있다. 읽기 및 쓰기 동작을 제어하기 위한 데이터 스트로브 신호(DQS)가 메모리 컨트롤러(120)로부터 메모리 장치(110)로 제공될 수 있다.
명령(CMD)은 활성화(activate) 명령, 읽기(read)/쓰기(write) 명령, 리프레시 명령 등을 포함할 수 있다. 어떤 실시예에서, 활성화 명령은 복수의 뱅크(113) 중 특정 뱅크의 메모리 셀 어레이(114)에 데이터를 쓰거나 복수의 뱅크(113) 중 특정 뱅크의 메모리 셀 어레이(114)로부터 데이터를 읽기 위해 메모리 셀 어레이(114)의 대상 행을 액티브 상태로 전환하는 명령일 수 있다. 활성화 명령에 응답하여 대상 행의 메모리 셀이 활성화(예를 들면, 구동)될 수 있다. 읽기/쓰기 명령은 액티브 상태로 전환된 행의 대상 메모리 셀에서 읽기 또는 쓰기 동작을 수행하기 위한 명령일 수 있다.
메모리 장치(110)는 반도체 소자를 기반으로 하는 저장 장치일 수 있다. 어떤 실시예에서, 메모리 장치(110)는 DRAM(dynamic random access memory), DDR4(double data rate 4), SDRAM(synchronous DRAM), LPDDR4(low power DDR4) SDRAM, 또는 LPDDR5 SDRAM 등을 포함할 수 있다. 어떤 실시예에서, 메모리 장치(110)는 NAND, 3D Vertical NAND 등 비휘발성 메모리 장치를 포함할 수 있다.
도 2는 일 실시예에 따른 반도체 메모리 장치를 나타낸 블록도이다.
도 2를 참고하면, 메모리 장치(200)는 복수의 메모리 셀 어레이(210), 복수의 센스 앰프(211), 제어 로직 회로(220), 어드레스 디코더(230), 어드레스 버퍼(235), 뱅크 제어 로직(240), 복수의 행 디코더(250), 복수의 열 디코더(260), I/O 게이팅 회로(270), 및 데이터 I/O 회로(280)를 포함한다.
복수의 메모리 셀 어레이(210) 각각은 복수의 메모리 셀(MC)을 포함한다. 복수의 메모리 셀 어레이(210) 각각은 복수의 행, 복수의 열 및 복수의 행과 복수의 열이 교차하는 복수의 메모리 영역을 포함할 수 있다. 복수의 메모리 영역 각각은 적어도 하나의 메모리 셀(MC)을 포함할 수 있다. 어떤 실시예에 따른 메모리 셀 어레이(210)에서 복수의 행 각각은 복수의 워드라인(WL) 각각에 의해 정의되고, 복수의 열 각각은 대응하는 적어도 하나의 비트라인(BL)에 의해 정의될 수 있다.
제어 로직 회로(220)는 메모리 장치(200)의 동작을 제어한다. 예를 들어, 제어 로직 회로(220)는 메모리 장치(200)가 읽기 동작, 쓰기 동작, ZQ 캘리브레이션 동작 등을 수행하도록 제어 신호를 생성할 수 있다. 어떤 실시예에서, 제어 로직 회로(220)는 명령(CMD)을 디코딩하여 제어 신호를 생성할 수 있다.
어드레스 버퍼(235)는 메모리 컨트롤러(120)로부터 제공되는 어드레스(ADDR)를 수신하고 저장할 수 있다. 도 2에서는 어드레스 버퍼(235)가 어드레스 디코더(230)와 별개의 구성으로 도시되어 있으나, 발명이 이에 한정되는 것은 아니다. 어드레스 버퍼(2350는 어드레스 디코더(230) 내에 구현될 수 있다. 어드레스(ADDR)는 메모리 셀 어레이(210)에서 어떤 행을 지시하는 행 어드레스이거나, 적어도 2개의 열을 지시하는 열 어드레스일 수 있다. 열 어드레스는 데이터 버스 단위의 복수의 열에 대응하는 비트라인(BL) 단위로 정의될 수 있다. 예를 들어, 4비트 데이터 버스를 가지는 반도체 메모리 시스템에서 4개의 비트라인 단위로 열 어드레스에 대응할 수 있다. 이하, 메모리 행은 워드라인으로 정의되고, 메모리 열은 데이터 버스의 비트수에 대응하는 개수의 비트라인 단위로 정의될 수 있다.
어드레스 디코더(230)는 메모리 컨트롤러(120)로부터 명령(CMD)을 수신할 수 있다. 어드레스 디코더(230)는 명령(CMD)을 디코딩하여 메모리 컨트롤러(120)로부터 메모리 장치(110)로 제공된 어드레스(ADDR)가 어떤 뱅크에 대한 오프셋 어드레스 및 풀 어드레스 중 어느 것인지 결정할 수 있다. 구체적으로, 어드레스 디코더(230)는 명령(CMD)을 디코딩하여 어드레스(ADDR)가 어떤 뱅크에 대한 풀 행 어드레스, 풀 열 어드레스, 오프셋 행 어드레스, 및 오프셋 열 어드레스 중 어느 것인지 식별할 수 있다. 또는, 제어 로직 회로(220)가 명령(CMD)을 디코딩하여 메모리 컨트롤러(120)로부터 수신한 어드레스(ADDR)가 어떤 뱅크의 풀 행 어드레스, 풀 열 어드레스, 오프셋 행 어드레스, 및 오프셋 열 어드레스 중 어느 것인지 식별하고, 식별 결과를 지시하는 정보를 어드레스 디코더(230)에 제공할 수 있다. 이하의 개시에서, 어드레스 디코더(230)가 명령(CMD)을 디코딩하여 어드레스(ADDR)의 종류를 식별하는 것으로 설명한다.
명령(CMD)이 오프셋 행 어드레스를 지시하는 경우, 어드레스(ADDR)는 어떤 뱅크에 대한 오프셋 행 어드레스로서, 해당 뱅크에서 마지막으로 구동된 메모리 행과 이번에 구동될 메모리 행간의 차를 지시할 수 있다. 어드레스 디코더(230)는 어드레스 버퍼(235)에 저장된 오프셋 행 어드레스 및 해당 뱅크의 마지막 행 어드레스에 기초하여 풀 어드레스인 행 어드레스(RA)를 생성할 수 있다.
명령(CMD)이 오프셋 열 어드레스를 지시하는 경우, 어드레스(ADDR)는 어떤 뱅크에 대한 오프셋 열 어드레스로, 해당 뱅크에서 마지막으로 구동된 메모리 열과 이번에 구동될 메모리 열 간의 차를 지시할 수 있다. 어드레스 디코더(230)는 어드레스 버퍼(235)에 저장된 오프셋 행 어드레스 및 해당 뱅크의 마지막 열 어드레스에 기초하여 풀 어드레스인 열 어드레스(CA)를 생성할 수 있다. 명령(CMD)이 풀 어드레스를 지시하는 경우, 어드레스 디코더(230)는 어드레스 버퍼(235)에 저장된 어드레스(ADDR)인 행 어드레스(RA) 또는 열 어드레스(CA)를 그대로 출력할 수 있다.
어드레스 디코더(230)는 행 어드레스(RA)를 행 어드레스 다중화기(251)에 제공하고, 열 어드레스(CA)를 열 디코더(260)에 제공할 수 있다.
어떤 실시예에서, 메모리 컨트롤러(120)는 메모리 장치(200)로 복수의 뱅크 중 어드레스(ADDR)에 대응하는 뱅크를 지시하는 뱅크 어드레스를 제공하고, 어드레스 디코더(230)는 뱅크 어드레스(BA)를 뱅크 제어 로직(240)으로 제공할 수 있다.
뱅크 제어 로직(240)은 뱅크 어드레스(BA)에 따라 복수의 행 디코더(250) 중에서 뱅크 어드레스(BA)에 대응하는 행 디코더(250)를 활성화하고, 복수의 열 디코더(260) 중에서 뱅크 어드레스(BA)에 대응하는 열 디코더(260)를 활성화할 수 있다. 어떤 실시예에서, 복수의 메모리 셀 어레이(210a~210h)에 대응하는 복수의 행 디코더(250a~250h) 및 복수의 열 디코더(260a~260h)가 제공될 수 있다. 어떤 실시예에서, 뱅크는 메모리 셀 어레이와 메모리 셀 어레이를 구동하는 행 디코더 및 열 디코더를 포함할 수 있다. 복수의 뱅크(300)는 8 개의 뱅크(300a~300h)를 포함하고, 뱅크(300a)는 메모리 셀 어레이(210a), 행 디코더(250a), 및 열 디코더(260a)를 포함하며, …, 뱅크(300h)는 메모리 셀 어레이(210h), 행 디코더(250h), 및 열 디코더(260h)를 포함할 수 있다.
어떤 실시예에서, 메모리 장치(200)는 행 어드레스 다중화기(251)를 더 포함하고, 리프레시 제어 회로(290)는 제어 로직 회로(220)의 제어에 따라서 리프레시될 행 어드레스(REF_RA)를 순차적으로 출력할 수 있다. 행 어드레스 다중화기(251)는 어드레스 디코더(230)로부터 행 어드레스(RA)를 수신하고, 리프레시 제어 회로(290)로부터 리프레시될 행 어드레스(REF_RA)를 수신할 수 있다. 행 어드레스 다중화기(251)는 어드레스 디코더 (230)로부터 수신한 행 어드레스(RA)와 리프레시 제어 회로(290)로부터 수신한 행 어드레스(REF_RA)를 선택적으로 행 디코더(250)로 출력할 수 있다.
행 디코더(250)는 뱅크 어드레스(BA)에 의해 지시되는 뱅크에서 행 어드레스에 기초해서 메모리 셀 어레이(210)의 복수의 행 중에서 활성화될 행을 선택한다. 이를 위해, 행 디코더(250)는 활성화될 행에 해당하는 워드라인에 구동 전압을 인가할 수 있다.
열 디코더(260)는 뱅크 어드레스(BA)에 의해 지시되는 뱅크에서 열 어드레스에 기초해서 메모리 셀 어레이(210)의 복수의 열 중에서 활성화될 열을 선택한다. 이를 위해, 열 디코더(260)는 I/O 게이팅 회로(270)를 통해 열 어드레스(CA)에 대응하는 센스 앰프(211)를 활성화시킬 수 있다.
어떤 실시예에서, I/O 게이팅 회로(270)는 입출력 데이터를 게이팅하며, 메모리 셀 어레이(210)로부터 읽은 데이터를 저장하기 위한 데이터 래치 및 메모리 셀 어레이(210)에 데이터를 쓰기 위한 쓰기 드라이버를 포함할 수 있다. 메모리 셀 어레이(210)에서 읽은 데이터는 센스 앰프(211)에 의해 감지되고, I/O 게이팅 회로(270)(예를 들면, 데이터 래치)에 저장될 수 있다. 어떤 실시예에서, 복수의 메모리 뱅크(300a~300h)에 각각 대응하는 복수의 센스 앰프(211a~211h)가 제공될 수 있다.
어떤 실시예에서, 메모리 셀 어레이(210)에서 읽은 데이터(예를 들면, 데이터 래치에 저장된 데이터)는 데이터 I/O 회로(280)를 통하여 메모리 컨트롤러(120)에 제공될 수 있다. 메모리 셀 어레이(210)에 기입될 데이터는 메모리 컨트롤러(120)로부터 데이터 I/O 회로(280)에 제공되고, 데이터 I/O 회로(280)에 제공된 데이터는 I/O 게이팅 회로(270)로 제공될 수 있다.
데이터 I/O 회로(280)는 버스를 통해 메모리 컨트롤러(120)로부터 수신되는 데이터 스트로브 신호(DQS)를 이용하여 클록 신호를 생성하고, 클록 신호에 따라 메모리 셀 어레이(210)에 저장된 데이터 중 데이터 I/O 회로(280)에 입력되는 데이터를 데이터 신호(DQ)로 변환하여 메모리 컨트롤러(120)에 제공할 수 있다. 데이터 I/O 회로(280)는 버스를 통해 메모리 컨트롤러(120)로부터 수신되는 데이터 스트로브 신호(DQS)를 이용하여 클록 신호를 생성하고, 메모리 컨트롤러(120)로부터 제공되는 데이터 신호(DQ)를 샘플링 및 증폭하여 메모리 셀 어레이(210)에 기입될 데이터를 생성할 수 있다.
이하의 설명에서 오프셋 어드레스는 오프셋 행 어드레스 및 오프셋 열 어드레스 중 적어도 어느 하나를 지시하고, 풀 어드레스는 풀 행 어드레스 및 풀 열 어드레스 중 적어도 어느 하나를 지시할 수 있다.
도 3은 일 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
메모리 컨트롤러(120)는 어드레스 맵핑 로직(121), 복수의 뱅크 큐(122_1~122_n), 복수의 뱅크 스케쥴러(123_1~123_n), 복수의 커맨드 레지스터(124_1~124_n), 및 채널 스케쥴러(125)를 포함할 수 있다.
어드레스 맵핑 로직(121)은 복수의 요청 각각을 어드레스 매핑 정책에 따라 어드레스로 변환할 수 있다. 어드레스 매핑 정책은 인터리브 뱅크(Interleaved Banks), 프라이빗 뱅크(Private Banks)와 같이 공지된 어드레스 매핑 정책, 또는 공지된 어드레스 매핑 정책들 중 둘 이상의 조합으로 구현될 수 있다. 어드레스 맵핑 로직(121)은 JEDEC과 같은 특정 규약에서 정의하고 있는 타이밍 제약, 요청을 처리하는데 있어서의 효율성 등을 고려하여 정해진 규칙에 따라 복수의 요청 각각을 복수의 뱅크 스케쥴러(123_1~123_n) 중 대응하는 하나에 배정하고, 각 요청에 대응하는 어드레스로 정의되는 뱅크에 대응하는 뱅크 큐(122_1~122_n 중 하나)에 해당 요청을 큐잉(queuing)할 수 있다. 복수의 뱅크 큐(122_1~122_n) 각각은 메모리 장치(110)를 구성하는 복수의 뱅크(BANK1~BNAKn)의 개수와 동일할 수 있다.
복수의 뱅크 스케쥴러(123_1~123_n) 각각은 대응하는 뱅크 큐(122_1~122_n 중 하나)에 저장된 복수의 요청에 대한 처리 순서를 스케쥴링하고, 스케쥴링 순서에 따라 복수의 요청을 복수의 명령으로 생성할 수 있다. 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 대응하는 뱅크에서 마지막으로 구동된 메모리 영역에 대한 마지막 어드레스와 스케쥴링 순서에 따른 이번 요청에 대응하는 어드레스를 비교하여 두 어드레스 차가 설정된 오프셋 범위 내라면, 이번 요청에 대응하는 어드레스와 마지막 어드레스 간의 차에 따라 오프셋 어드레스를 생성할 수 있다. 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 이번 요청에 대응하는 어드레스를 마지막 어드레스로 업데이트 할 수 있다. 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 어떤 요청에 대응하는 어드레스를 오프셋 어드레스로 생성한 경우 해당 요청에 대해서는 오프셋 어드레스를 지시하는 명령으로 생성할 수 있다. 풀 어드레스를 사용하는 명령과 오프셋 어드레스를 사용하는 명령은 커맨드 구분자에 의해 구분될 수 있다. 두 어드레스 차가 설정된 오프셋 범위 내가 아닌 경우, 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 이번 요청에 대응하는 어드레스를 풀 어드레스로 생성할 수 있다. 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 이와 같이 생성한 어드레스 및 명령을 복수의 커맨드 레지스터(124_1~124_n) 각각에 제공할 수 있다.
복수의 뱅크 스케쥴러(123_1~123_n) 각각은 설정된 정책에 따라 복수의 요청에 대한 처리 순서를 정할 수 있다. 설정된 정책은 로우 히트(row hit)를 고려하는 오픈 페이지 방식 등을 포함할 수 있다. 일 실시예는 기존 정책에 더해서, 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 대응하는 뱅크 큐에 큐잉된 복수의 요청 각각에 대해서, 각 요청의 어드레스를 오프셋 어드레스로 생성할 수 있는지에 따라 복수의 요청에 대한 처리 순서를 결정할 수 있다. 예를 들어, 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 풀 어드레스로 어드레스(ADDR)를 메모리 장치(110)에 제공해야 하는 요청 보다 오프셋 어드레스로 어드레스(ADDR)를 메모리 장치(110)에 제공할 수 있는 요청을 더 우선 순위로 결정할 수 있다. 그러면, 풀 어드레스에 해당하던 요청이 오프셋 어드레스에 해당하는 요청으로 변경될 수 있다. 또한, 복수의 뱅크 스케쥴러(123_1~123_n) 각각은 이번 요청에 대응하는 뱅크에서 액티브 상태인 메모리 행이 없는 버퍼 미스(buffer miss)인 경우, 각 뱅크에서 마지막으로 액티브 상태였던 메모리 행의 어드레스와 이번 요청의 어드레스 간의 차이가 소정의 오프셋 범위 내인 경우, 이번 요청을 대응하는 뱅크 큐에 있는 다른 요청보다 우선 순위로 결정하고, 이번 요청에 대한 어드레스와 마지막으로 액티브 상태였던 메모리 행의 어드레스 간의 차를 오프셋 어드레스로 생성할 수 있다.
채널 스케쥴러(125)는 복수의 커맨드 레지스터(124_1~124_n)에 저장된 복수의 뱅크에 대한 복수의 명령을 모니터링하고 요구되는 채널 실시간 제약 조건을 만족하는 모든 명령 중에서 가장 높은 우선순위의 명령(CMD)을 선택하여 메모리 장치(110)에 어드레스(ADDR)와 함께 전송할 수 있다. 채널 스케쥴러(125)는 복수의 커맨드 레지스터(124_1~124_n)에 저장된 복수의 명령 중 가장 높은 우선 순위의 명령(CMD)을 선택하여 메모리 장치(110)에 어드레스(ADDR)와 함께 전송할 수 있다. 이때, 어드레스(ADDR)는 뱅크 어드레스와 함께 오프셋 어드레스를 포함하거나, 뱅크 어드레스와 함께 풀 어드레스를 포함할 수 있다.
이와 같이, 메모리 컨트롤러(120)는 수신되는 복수의 요청에 대한 뱅크 스케쥴링 및 채널 스케쥴링을 통해 액세스 시퀀스(access sequences)를 결정하고, 결정한 엑세스 시퀀스에 따라 명령(CMD) 및 어드레스(ADDR)를 메모리 장치(200)에 제공할 수 있다.
복수의 뱅크 스케쥴러(123_1~123_n) 각각은 대응하는 뱅크에서 마지막으로 구동된 메모리 영역의 마지막 어드레스를 저장하는 레지스터(126_1~126_n)를 포함할 수 있다. 채널 스케쥴러(125)는 메모리 장치(110)로 전송한 명령(CMD) 및 어드레스(ADDR)에 대응하는 뱅크 스케쥴러(123_1~123_n 중 하나)에 해당 명령을 처리했음을 알리는 명령 처리 신호를 전송할 수 있다. 예를 들어, 채널 스케쥴러(125)는 뱅크 스케쥴러(123_i, i는 1부터 n까지의 정수 중 하나)에 명령 처리 신호를 전송하고, 뱅크 스케쥴러(123_i)는 마지막 어드레스 레지스터(126_i)에 채널 스케쥴러(125)에 의해 처리된 명령에 대응하는 어드레스를 기록할 수 있다. 이 때, 어드레스는 풀 어드레스일 수 있다. 즉, 복수의 뱅크 스케쥴러(123_1~123_n) 중 채널 스케쥴러(125)로부터 명령 처리신호를 수신한 뱅크 스케쥴러(123_i)는 마지막 어드레스 레지스터(126_i)에 처리된 명령에 대응하는 풀 어드레스를 저장할 수 있다.
메모리 컨트롤러(120)는 리드 데이터 버퍼(128) 및 라이트 데이터 버퍼(129)를 더 포함할 수 있다. 리드 데이터 버퍼(128)는 메모리 장치(110)로부터 제공되는 리드 데이터를 저장하고, 외부 요청에 대한 응답으로 리드 데이터를 버스에 제공할 수 있다. 라이트 데이터 버퍼(129)는 버스를 통해 제공되는 기입될 데이터를 저장하고, 외부 요청에 대한 응답으로 메모리 장치(110)에 제공될 수 있다.
이하, 도 4를 참조하여 어드레스 디코더에 대해서 설명한다.
도 4는 일 실시예에 따른 어드레스 디코더를 나타낸 블록도이다.
도 4에 도시된 바와 같이, 어드레스 디코더(230)는 어드레스 테이블(231), 행/열 선택기(232), 어드레스 합산기(233), 어드레스 먹스(234), 및 디코딩 제어 로직(235)를 포함할 수 있다.
디코딩 제어 로직(235)은 어드레스(ADDR) 및 명령(CMD)를 수신하고, 명령(CMD)을 디코딩하여 어드레스(ADDR)가 오프셋 어드레스 및 풀 어드레스 중 어는 것인지 식별하며, 식별한 결과에 기초하여 어드레스 먹스(234)를 제어하기 위한 어드레스 선택 신호(ASS)를 생성할 수 있다. 디코딩 제어 로직(235)은 어드레스(ADDR)로부터 뱅크 어드레스(BA)를 도출할 수 있다. 디코딩 제어 로직(235)은 뱅크 어드레스(BA)를 뱅크 제어 로직(240)에 제공할 수 있다.
디코딩 제어 로직(235)은 어드레스(ADDR)로부터 행 어드레스 또는 열 어드레스를 지시하는 어드레스 비트들을 도출할 수 있다. 오프셋 행 어드레스 및 오프셋 열 어드레스 각각은 설정된 Na개의 연속된 비트 데이터로 구현될 수 있고, 풀 행 어드레스 및 풀 열 어드레스 각각도 설정된 Nb개의 연속된 비트 데이터로 구현될 수 있다. Nb는 Na보다 큰 자연수일 수 있다.
디코딩 제어 로직(235)은 어드레스(ADDR)가 풀 어드레스인 경우, 어드레스(ADDR)가 지시하는 행 어드레스 또는 열 어드레스를 그대로 출력할 것을 지시하는 어드레스 선택 신호(ASS)를 생성할 수 있다. 디코딩 제어 로직(235)은 어드레스(ADDR)가 오프셋 행 어드레스인 경우, 어드레스 합산기(233)로부터 제공되는 행 어드레스 또는 열 어드레스를 출력할 것을 지시하는 어드레스 선택 신호(ASS)를 생성할 수 있다. 디코딩 제어 로직(235)는 어드레스 선택 신호(ASS)를 어드레스 먹스(234)에 제공할 수 있다. 먹스(234)는 어드레스 선택 신호(ASS)에 따라 어드레스(ADDR)가 지시하는 행 어드레스 또는 열 어드레스를 행 어드레스 다중화기(251) 또는 복수의 열 어드레스(260)에 제공할 수 있다. 또는 어드레스 합산기(233)로부터 제공되는 행 어드레스 또는 열 어드레스를 행 어드레스 다중화기(251) 또는 복수의 열 어드레스(260)에 제공할 수 있다.
디코딩 제어 로직(235)은 어드레스(ADDR)가 오프셋 행 어드레스인 경우 뱅크 어드레스(BA)에 따른 뱅크 선택 신호(BSS)를 생성하고, 어드레스 합산기(233)의 행 어드레스 합산 동작을 제어하기 위한 행 선택 신호(RSS)를 생성할 수 있다. 디코딩 제어 로직(235)은 어드레스(ADDR)가 오프셋 열 어드레스인 경우 뱅크 어드레스(BA)에 따른 뱅크 선택 신호(BSS)를 생성하고, 어드레스 합산기(233)의 열 어드레스 합산 동작을 제어하기 위한 열 선택 신호(CSS)를 생성할 수 있다.
디코딩 제어 로직(235)에서 어드레스 합산기(233) 및 어드레스 먹스(234)에 제공하는 오프셋 행 어드레스 및 오프셋 열 어드레스, 또는 행 어드레스 및 열 어드레스를 통칭하여 어드레스 비트들이라고 규정할 수 있다.
어드레스 테이블(231)은 복수의 뱅크(300a~300h) 각각에서 마지막으로 구동된 메모리 영역에 대한 어드레스(이하, 기본 어드레스)에서의 행 어드레스(이하, 기본 행 어드레스) 및 열 어드레스(이하, 기본 열 어드레스)를 뱅크 별로 저장할 수 있다. 도 4에 도시된 바와 같이, 어드레스 테이블(231)은 “Bank”열, “Row”열, 및 “Col”열을 포함하고, 어드레스 테이블(231)의 각 행에는 열 별로 뱅크 어드레스, 기본 행 어드레스, 및 기본 열 어드레스가 기록되어 있다. 디코딩 제어 로직(235)에 의해 생성된 뱅크 선택 신호(BSS)에 의해 어드레스 테이블(231)에서 “Bank”열의 복수의 뱅크(1, 2, … n) 중 하나가 선택될 수 있다.
행/열 선택기(232)는 디코딩 제어 로직(235)에 의해 생성된 행 선택 신호(RSS) 및 열 선택 신호(CSS)에 따라 선택된 뱅크의 기본 행 어드레스 및 기본 열 어드레스 각각을 어드레스 합산기(233)에 제공할 수 있다. 행/열 선택기(232)는 행 선택 신호(RSS)에 동기되어 어드레스 합산기(233)에 기본 행 어드레스를 제공하고, 열 선택 신호(CSS)에 동기되어 어드레스 합산기(233)에 기본 열 어드레스를 제공할 수 있다.
이와 같이, 디코딩 제어 로직(235)은 어드레스 테이블(231)에서 어떤 뱅크를 선택하고, 선택한 뱅크의 기본 행 어드레스를 어떤 타이밍에 어드레스 합산기(233)에 제공할지 제어하며, 선택한 뱅크의 기본 열 어드레스가 어떤 타이밍에 어드레스 합산기(233)에 제공할지 제어할 수 있다.
어드레스 비트들이 어드레스 합산기(233)에 제공될 때, 행/열 선택기(232)는 어드레스 비트들이 지시하는 오프셋 행 어드레스 또는 오프셋 열 어드레스에 맞춰 기본 행 어드레스 또는 기본 열 어드레스를 어드레스 합산기(233)에 제공할 수 있다.
어드레스 합산기(233)는 어드레스 비트들과 기본 행 어드레스를 더해 행 어드레스(RA)를 생성하거나, 어드레스 비트들과 기본 열 어드레스를 더해 열 어드레스(CA)를 생성할 수 있다.
어드레스 먹스(234)는 어드레스 선택 신호(ASS)에 따라 어드레스 비트들에 따른 행 어드레스(RA) 또는 열 어드레스(CA)를 출력하거나, 어드레스 합산기(233)에 의해 생성된 행 어드레스(RA) 또는 열 어드레스(CA)를 출력할 수 있다. 예를 들어, 어드레스 먹스(234)는 명령(CMD)이 풀 어드레스를 지시할 때 디코딩 제어 로직(235)에서 제공하는 어드레스 선택 신호(ASS)에 의해 어드레스(ADDR)에 따른 행 어드레스(RA) 및 열 어드레스(CA) 중 하나를 출력하고, 명령(CMD)이 오프셋 어드레스를 지시할 때 디코딩 제어 로직(235)에서 제공하는 어드레스 선택 신호(ASS)에 따라 어드레스 합산기(233)에 의해 생성된 행 어드레스 또는 열 어드레스를 출력할 수 있다.
어드레스 디먹스(236)는 어드레스 먹스(234)를 통해 출력되는 행 어드레스 또는 열 어드레스를 어드레스 테이블(231)에서 뱅크 선택 신호(BSS)가 지시하는 뱅크(Bank) 및 행 선택 신호(RSS) 또는 열 선택 신호(CSS)가 지시하는 뱅크(Bank)에서의 행(Row) 또는 열(Col)에 업데이트할 수 있다.
이하, 일 실시예에 따른 반도체 메모리 장치가 명령(CMD) 및 어드레스(ADDR)를 디코딩하여 풀 어드레스를 생성하는 방법에 대해서 설명한다.
도 5는 일 실시예에 따른 메모리 장치의 어드레스 디코딩 방법을 나타낸 순서도이다.
메모리 컨트롤러(120)는 명령(CMD) 및 어드레스(ADDR)를 메모리 장치(200)에 제공할 수 있다(S1, S2). 이에 따라, 메모리 장치(200)의 제어 로직 회로(220) 및 어드레스 디코더(230)가 명령(CMD)을 획득하고, 어드레서 버퍼(235)가 어드레스(ADDR)를 획득할 수 있다.
어드레스 버퍼(235)는 어드레스(ADDR)를 어드레스 디코더(230)에 제공할 수 있다(S3).
어드레스 디코더(230)는 명령(CMD)을 디코딩하여 어드레스(ADDR)가 오프셋 어드레스인지 판단할 수 있다(S4).
S4 판단 결과, 어드레스(ADDR)가 오프셋 어드레스가 아닌 풀 어드레스인 경우 어드레스(ADDR)가 지시하는 행 어드레스 또는 열 어드레스를 행 어드레스 다중화기(251) 또는 복수의 열 디코더(260)에 제공할 수 있다(S8).
S4 판단 결과, 어드레스(ADDR)가 오프셋 어드레스인 경우, 어드레스 디코더(230)는 어드레스(ADDR)가 오프셋 행 어드레스를 포함하는지 판단할 수 있다(S5).
S5 판단 결과 어드레스(ADDR)가 오프셋 행 어드레스를 포함하는 경우, 어드레스 디코더(230)는 뱅크 선택 신호(BSS)에 따라 어드레스 테이블(231)에서 뱅크를 선택하고, 선택한 뱅크에서 기본 행 어드레스를 독출하며, 기본 행 어드레스와 오프셋 행 어드레스를 지시하는 어드레스 비트들을 더해 행 어드레스를 생성할 수 있다(S6).
S5 판단 결과 어드레스(ADDR)가 오프셋 행 어드레스가 아닌 오프셋 열 어드레스를 포함하는 경우, 어드레스 디코더(230)는 뱅크 선택 신호(BSS)에 따라 어드레스 테이블(231)에서 뱅크를 선택하고, 선택한 뱅크에서 기본 열 어드레스를 독출하며, 기본 열 어드레스와 오프셋 열 어드레스를 지시하는 어드레스 비트들을 더해 열 어드레스를 생성할 수 있다(S7).
단계 S6 또는 단계 S7에 이어서 단계 S8이 수행될 수 있다.
단계 S8 이후, 어드레스 디코더(230)는 S7단계에서 생성한 행 어드레스 또는 열 어드레스를 어드레스 테이블(231)에서 대응하는 뱅크(Bank) 및 행(Row) 또는 열(Col)에 업데이트 할 수 있다(S9). 어드레스 테이블(231)은 업데이트된 행 어드레스 또는 열 어드레스를 저장할 수 있다.
메모리 장치(200)에 대한 읽기 동작 또는 기입 동작의 복수의 요청에 있어서, 복수의 요청에 대응하는 복수의 어드레스가 어떤 규칙을 따라 변하거나, 서로 인접할 때, 메모리 컨트롤러(120)는 오프셋 어드레스를 생성할 수 있다. 예를 들어, 인공 신경망을 구현한 칩이 벡터 프로세싱을 위해서 반도체 메모리 시스템으로부터 데이터를 읽어오고 프로세싱 결과를 반도체 메모리 시스템에 기입할 때의 복수의 요청에 대응하는 복수의 어드레스는 정해진 규칙을 따를 수 있다. 또한, 비디오 인코딩 칩이 반도체 메모리 시스템으로부터 영상 소스를 읽어올 때 복수의 요청에 대응하는 복수의 어드레스는 정해진 규칙을 따를 수 있다. 이와 같이, 예측 가능한 반도체 메모리 시스템으로의 접근이 주를 이루는 환경에서는 풀 어드레스를 메모리 장치에 전송하는 대신 오프셋 어드레스를 전송하는 것이 메모리 장치를 구동하는데 있어 효율적일 수 있다.
도 6은 일 실시예에 따른 복수의 뱅크 중 어떤 뱅크의 메모리 셀 어레이의 일부를 도식적으로 나타낸 도면이다.
도 6에 도시된 바와 같이, 메모리 셀 어레이(500)에서, 스트라이드(Stride) 패턴에 따른 순서대로 메모리 영역에 대한 복수의 읽기 요청 또는 복수의 쓰기 요청이 발생하는 경우를 가정해 본다. 도 6에 도시된 바와 같이, 복수의 메모리 영역(501~516)은 일정한 간격으로 메모리 셀 어레이(500)에서 위치하고 있다. 구체적으로, 메모리 셀 어레이(500)에서 복수의 메모리 영역(501~516)은 2X2 단위로 이격되어 위치하고, 복수의 메모리 영역(501~516) 각각은 행 어드레스 및 열 어드레스에 의해 정의될 수 있으며, 적어도 하나의 메모리 셀을 포함할 수 있다.
종래에는 메모리 컨트롤러가 복수의 메모리 영역 각각에 대한 풀 어드레스로 구현된 복수의 어드레스를 스케쥴링 순서에 따라 메모리 장치에 전송해야 한다. 예를 들어, 행(ROW1)에서 2열 단위로 떨어져 위치하는 복수의 메모리 영역(501~504)을 우측 방향으로 구동하는 경우, 메모리 컨트롤러는 메모리 영역(501)에 대한 풀 어드레스 전송 후 정해진 비트 수의 열 어드레스를 연속하여 3번 메모리 장치로 전송해야 한다. 동일한 방식으로, 복수의 행(ROW2, ROW3, ROW4) 각각에서 2열 단위로 떨어져 위치하는 복수의 메모리 영역(505~508, 509~512, 513~516)을 우측 방향으로 구동하는 경우, 메모리 컨트롤러는 메모리 영역(505, 509, 513)에 대한 풀 어드레스 전송 후 정해진 비트 수의 열 어드레스를 연속하여 3번 메모리 장치로 전송해야 한다.
그러나 일 실시예에 따른 오프셋 어드레스를 이용할 경우, 메모리 컨트롤러(120)는 메모리 영역(501)에 대한 풀 어드레스 전송 후 메모리 영역(501)과 메모리 영역(502) 간의 오프셋 열 어드레스, 메모리 영역(502)과 메모리 영역(503) 간의 오프셋 열 어드레스, 및 메모리 영역(503)과 메모리 영역(504) 간의 오프셋 열 어드레스만을 메모리 장치(110)로 전송하면 된다. 이때, 오프셋 열 어드레스들은 종래 열 어드레스의 정해진 비트 수보다 작은 수의 비트들로 구현될 수 있다. 이어서, 메모리 컨트롤러(120)는 메모리 영역(504)와 메모리 영역(505) 간의 오프셋 행 어드레스 및 오프셋 열 어드레스를 메모리 장치(110)로 전송하고, 메모리 영역(505)과 메모리 영역(506) 간의 오프셋 열 어드레스, 메모리 영역(506)과 메모리 영역(507) 간의 오프셋 열 어드레스, 및 메모리 영역(507)과 메모리 영역(508) 간의 오프셋 열 어드레스만을 메모리 장치(110)로 전송하면 된다. 이와 같은 방식으로, 일 실시예에 따른 메모리 컨트롤러(120)는 풀 어드레스에 비해 적은 수의 비트를 포함하는 오프셋 어드레스를 메모리 장치(110)에 전송할 수 있다.
메모리 컨트롤러(120)는 마지막 어드레스와 이번 어드레스 간의 차에 따라 오프셋 어드레스를 생성하므로, 생성된 오프셋 어드레스는 가변적일 수 있다. 이와 달리, 메모리 컨트롤러(120)는 특정 조건에서 오프셋 어드레스를 고정할 수 있다. 특정 조건은 설계에 따라 정의될 수 있다. 예를 들어, 디스플레이에 영상 소스를 제공하는 호스트가 반도체 메모리 시스템을 프레임 버퍼로 사용하는 경우, 매 프레임마다 화면에 표시할 한 프레임 단위의 영상 소스는 메모리 장치에서 일정한 패턴으로 위치할 수 있다. 이 경우, 오프셋 어드레스는 고정된 값일 수 있다. 일 실시예에 따른 메모리 컨트롤러(120)는 생성한 오프셋 어드레스를 포함하는 명령과 오프셋 어드레스가 고정된 명령 중 하나를 선택적으로 메모리 장치(200)에 제공할 수 있다.
표 1은 오프셋 어드레스가 생성될 때마다 변할 수 있는 가변 오프셋 기반의 명령을 나타낸 표이다.
메모리 장치 동작 구성 요소
Offset-Activate Command 구분자, 뱅크 주소, 오프셋
Offset-Read Command 구분자, 뱅크 주소, 오프셋, 오토-프리챠지 여부
Offset-Write Command 구분자, 뱅크 주소, 오프셋, 오토-프리챠지 여부
표 1에서, 명령 “Offset-Activate”는 오프셋 어드레스를 이용하는 활성화(Activate) 동작을 지시하는 명령으로, 명령(Command) 구분자, 뱅크 주소, 및 오프셋을 포함할 수 있다. “활성화 동작”은 복수의 뱅크 중 하나를 선택하고 선택한 뱅크를 구성하는 복수의 메모리 행 중 하나를 활성화하는 동작을 의미할 수 있다. 명령 “Offset-Activate”에 포함된 오프셋은 오프셋 행 어드레스일 수 있다. 명령 “Offset-Read”는 오프셋 어드레스를 이용하는 읽기(Read) 동작을 지시하는 명령으로, 명령(Command) 구분자, 뱅크 주소, 오프셋, 및 오토-프리챠지 여부를 포함할 수 있다. “읽기 동작”은 활성화된 뱅크 및 메모리 행에서 특정 메모리 열을 선택하여 데이터를 읽어오는 동작을 의미할 수 있다. 명령 “Offset-Write”는 오프셋 어드레스를 이용하는 기입(Write) 동작을 지시하는 명령으로, Command 구분자, 뱅크 주소, 오프셋, 및 오토-프리챠지 여부를 포함할 수 있다. “기입 동작”은 활성화된 뱅크 및 메모리 행에서 특정 메모리 열을 선택하여 데이터를 기입하는 동작을 의미할 수 있다. 명령 “Offset-Read”및 명령 “Offset-write”의 오프셋은 오프셋 열 어드레스일 수 있다. 오토-프리챠지는 정해진 동작 주기 동안 읽기 또는 기입 동작을 수행한후 프리챠지 동작이 수행되는 명령을 의미할 수 있다. 표 2는 오프셋 어드레스가 고정된 고정 오프셋 기반의 명령을 나타낸 표이다.
메모리 장치 동작 구성 요소
Offset-Activate Command 구분자, 뱅크 주소
Offset-Read Command 구분자, 뱅크 주소, 오토-프리챠지 여부
Offset-Write Command 구분자, 뱅크 주소, 오토-프리챠지 여부
Set-Offset Command 구분자, 뱅크 주소, 오프셋
표 2에서, 명령 “Offset-Activate”는 오프셋 어드레스를 이용하는 활성화(Activate) 동작을 지시하는 명령으로, 명령(Command) 구분자 및 뱅크 주소를 포함할 수 있다. 명령 “Offset-Read”는 오프셋 어드레스를 이용하는 읽기(Read) 동작을 지시하는 명령으로, 명령(Command) 구분자, 뱅크 주소, 및 오토-프리챠지 여부를 포함할 수 있다. 명령 “Offset-write”는 오프셋 어드레스를 이용하는 기입(Write) 동작을 지시하는 명령으로, 명령(Command) 구분자, 뱅크 주소, 및 오토-프리챠지 여부를 포함할 수 있다. 명령 “Set-Offset”은 Command 구분자, 뱅크 주소, 및 고정된 값을 가지는 오프셋을 포함할 수 있다. 명령 “Set-Offset”의 오프셋은 해당 명령에 대응하는 오프셋 어드레스 즉, 오프셋 행 어드레스, 오프셋 열 어드레스, 또는 오프셋 행 어드레스와 오프셋 열 어드레스일 수 있다. 표 1 및 표 2에서 알 수 있듯이 일 실시예를 구현하기 위해 새로 생성된 복수의 명령들 각각을 구분하기 위한 복수의 Command 구분자가 기존의 복수의 Command 구분자에 의해 추가되었다. 새로 생성된 복수의 구분자를 조합하기 위해서 메모리 장치(110)에 핀이 추가될 수 있다. 또는 메모리 장치(110)에 구비된 핀 중 하나에 전송되는 신호에 정보가 추가되고, 메모리 장치(110)는 추가적인 정보를 획득할 수 있는 디코딩 동작을 수행할 수 있다.
도 7은 일 실시예에 따른 메모리 장치의 복수의 핀을 나타낸 도면이다.
도 7에 도시된 메모리 장치(600)는 일 실시예를 설명하기 위한 일 예로, Command 구분자에 관여하는 핀들만이 도시되어 있다. 도 7에 도시된 핀 이외에도 메모리 장치(600)는, 클록 인에이블 신호(Clock enable; /CKE)가 입력되는 핀, 어드레스(ADDR)가 입력되는 복수의 어드레스 핀, 데이터 신호가 입출력되는 복수의 DQ 핀, 전원 핀 등을 더 포함할 수 있다.
도 7에서, 메모리 컨트롤러(610)는 메모리 장치(600)의 제1 핀(601)에 칩 선택 신호(chip select; /CS)를 제공하고, 제2 핀(602)에 로우 어드레스 스트로브 커맨드(Row Address Strobe Command; /RAS)를 제공하며, 제3 핀(603)에 컬럼 어드레스 스트로브 커맨드(Column Address strobe Command; /CAS)를 제공하고, 제4 핀(604)에 라이트 인에이블 신호(Write enable; /WE)를 제공할 수 있다. 제1 핀 내지 제4 핀(601~604)에 제공되는 신호의 논리 레벨의 조합으로 복수의 커멘드가 정의될 수 있다. 메모리 컨트롤러(610)는 제5 핀(605)에 메모리 장치(600)의 동작 주파수를 제어하는 클록 신호(CLK)를 제공할 수 있다. 칩 선택 신호(/CS)는 반도체 메모리 시스템을 구성하는 복수의 메모리 칩 중 하나를 선택하는 신호이고, 로우 어드레스 스트로브 커맨드(/RAS)는 어드레스 라인에서 행 어드레스를 읽어오는 시점을 제어하는 신호이고, 컬럼 어드레스 스트로브 커맨트(/CAS)는 어드레스 라인에서 열 어드레스를 읽어오는 시점을 제어하는 신호이며, 라이트 인에이블 신호(/WE)는 데이터 기입을 제어하는 신호이다.
일 실시예에 따른 메모리 컨트롤러(610)는 복수의 오프셋 커맨드들에 대한 복수의 커맨드 구분자를 정의하기 위해서, 제1 핀(601)의 칩 선택 신호(/CS)를 DDR(Double Data Rate) 방식으로 제공할 수 있다. 메모리 장치(600)는 클록 신호(CLK)의 상승 에지 시점에 칩 선택 신호(/CS)가 로우 레벨일 때 다른 핀들을 통해 입력되는 신호들에 따라 동작할 수 있다. 메모리 컨트롤러(610)는 오프셋 커맨드에 대한 커맨드 구분자를 정의하기 위해서 클록 신호(CLK)의 특정 에지마다 칩 선택 신호(/CS)의 논리 레벨을 설정할 수 있다. 예를 들어, 메모리 컨트롤러(610)는 클록 신호(CLK)의 하강 에지 시점에 칩 선택 신호(/CS)를 하이 레벨로 설정하여 오프셋 커맨드에 대한 커맨드 구분자를 구현할 수 있다.
도 8은 일 실시예에 따른 가변 오프셋 기반의 명령에 대한 커맨드 구분자를 나타낸 파형도이다.
도 8에 도시된 바와 같이, 동일한 메모리 장치의 동작을 지시하는 각 명령에 있어서, 풀 어드레스와 오프셋 어드레스 간에 커맨드 구분자가 서로 다른 점이 나타나 있다.
도 8에 도시된 클록 신호(CLK), 칩 선택 신호(/CS), 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 메모리 컨트롤러(610)에 의해 생성되어 제1 핀(601) 내지 제5 핀(605)을 통해 메모리 장치(600)에 제공된다. 도 8에서 메모리 컨트롤러(610) 하이 레벨의 클록 인에이블 신호(/CKE)를 메모리 장치(600)에 제공하여, 클록 신호(CLK)에 따라 메모리 장치(600)가 동작할 수 있다.
도 8은 일 실시예에 따른 오프셋 커맨드에 대한 커맨드 구분자를 설명하기 위한 일 예로서, 메모리 컨트롤러(610)가 칩 선택 신호(/CS)를 DDR 방식으로 메모리 장치(600)에 제공할 수 있다. 즉, 제1 핀(601)이 DDR 방식으로 구동되어 칩 선택 신호(/CS)가 클록 신호(CLK)의 상승 에지에 특정 값을 가질 수 있다.
도 8에서는 명령(CMD)에 대응하는 뱅크 어드레스, 행 어드레스, 열 어드레스, 오토-프리챠지 여부 등을 지시하는 신호는 생략되어 있다. 이에 대한 공지된 다양한 방식으로 명령(CMD)에 대응하는 정보를 지시하도록 신호들을 구현하는 것은 당업자에게 자명하다.
클록 신호(CLK)의 상승 에지(T1)에, 칩 선택 신호(/CS), 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, L, H, H의 값을 가지고, 이들의 조합은 풀 어드레스의 Activate 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 상승 에지(T2)에, 칩 선택 신호(/CS), 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, H, L, H의 값을 가지고, 이들의 조합은 풀 어드레스의 Read 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 상승 에지(T3)에, 칩 선택 신호(/CS), 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, H, L, L의 값을 가지고, 이들의 조합은 풀 어드레스의 Write 동작을 지시하는 커맨드 구분자를 구현할 수 있다.
클록 신호(CLK)의 하강 에지(T4)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T4)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T5)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, H, H의 값을 가지고, 이들의 조합(H, L, H, H)은 가변 오프셋 기반의 오프셋 어드레스를 이용한 Activate 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 하강 에지(T6)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T6)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T7)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 H, L, H의 값을 가지고, 이들의 조합(H, H, L, H)은 가변 오프셋 기반의 오프셋 어드레스를 이용한 Read 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 하강 에지(T8)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T8)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T9)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 H, L, L의 값을 가지고, 이들의 조합(H, H, L, L)은 가변 오프셋 기반의 오프셋 어드레스를 이용한 Write 동작을 지시하는 커맨드 구분자를 구현할 수 있다.
도 9는 일 실시예에 따른 고정 오프셋 기반의 명령에 대한 커맨드 구분자를 나타낸 파형도이다.
도 9에 도시된 칩 선택 신호(/CS), 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)들의 파형은 일 실시예를 설명하기 위한 일 예로 발명이 이에 한정되는 것은 아니다.
클록 신호(CLK)의 하강 에지(T10)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T10)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T11)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, H, L의 값을 가지고, 이들의 조합(H, L, H, L)은 고정 오프셋 기반의 오프셋 어드레스를 이용한 Activate 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 하강 에지(T12)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T12)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T13)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, L, H의 값을 가지고, 이들의 조합(H, L, L, H)은 고정 오프셋 기반의 오프셋 어드레스를 이용한 Read 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 하강 에지(T14)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T14)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T15)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 H, H, L의 값을 가지고, 이들의 조합(H, H, H, L)은 고정 오프셋 기반의 오프셋 어드레스를 이용한 Write 동작을 지시하는 커맨드 구분자를 구현할 수 있다. 클록 신호(CLK)의 하강 에지(T16)에 칩 선택 신호(/CS)는 H 값을 가지고, 하강 에지(T16)에 이어서 발생하는 클록 신호(CLK)의 상승 에지(T17)에, 로우 어드레스 스트로브 커맨드(/RAS), 컬럼 어드레스 스트로브 커맨드(/CAS), 및 라이트 인에이블 신호(/WE)는 L, L, L의 값을 가지고, 이들의 조합(H, L, L, L)은 고정 오프셋 값을 지시하는 커맨드 구분자를 구현할 수 있다.
메모리 장치의 동작 주파수에 비례하는 대기 전력(Standby Power)을 절감하고자, Clock Domain을 분리하여 메모리 장치의 동작 주파수를 제어하는 클록 주파수는 데이터 신호(DQ)의 주파수 대비 소정 비율로 낮게 설정될 수 있다. 비율이 증가하면 명령 및 어드레스 버스의 대역폭 감소에 따른 성능 저하가 발생할 수 있다. 일 실시예에 따른 오프셋 어드레스는 종래 풀 어드레스에 비해 명령 및 어드레스 버스를 통해 전송되는 데이터 량을 감소시킬 수 있으므로, 대역폭 감소에 다른 성능 저하를 방지할 수 있다. 더구나 추가적인 핀을 메모리 장치에 추가하지 않고, 기존 핀을 이용하여 오프셋 어드레스를 이용할 수 있는 명령을 제공할 수 있다. 칩 선택 신호(/CS)를 수신하는 CS 핀을 이용하는 것 대신 추가적인 핀을 메모리 장치에 구현하더라도 메모리 컨터롤러가 메모리 장치로 명령을 전송하는 데이터 량이 감소하여, 동작 주파수가 감소하게 되더라도 저전력 구동이 가능할 수 있다.
도 10은 일 실시예에 따른 오프셋 어드레싱 방식에 따른 명령 전송을 풀 어드레싱 방식과 비교하여 나타낸 파형도이다.
도 10의 (A)는 풀 어드레싱 방식에서의 풀 어드레스를 전송하기 위한 명령을 도식적으로 나타낸 파형도이다.
도 10의 (B)는 오프셋 어드레싱 방식이 적용 가능할 때의 오프셋 어드레스를 전송하기 위한 명령을 도시적으로 나타낸 파형도이다.
도 10의 (C)는 (A) 및 (B) 대비 동작 주파수가 0.5일 때의 명령 전송을 도식적으로 나타낸 파형도이다. 도 10에 도시된 파형들은 명령 전송에 대한 것이고 메모리 컨트롤러(120)가 메모리 장치(200)로 데이터 신호를 전송하는 주파수는 도 10에 도시된 클록 신호(CLK1)와 다를 수 있다. 예를 들어, 데이터 신호의 전송 주파수는 클록 신호(CLK1)의 주파수보다 더 높을 수 있다.
풀 어드레스 전송을 위해서 명령1(CMD1) 및 명령2(CMD2)이 필요하다고 할 때, 도 10의 (A)에서는 클록 신호(CLK1)의 매 상승 에지마다 명령1(CMD1) 및 명령(CMD2)가 메모리 컨트롤러(120)에서 메모리 장치(200)로 전송되어야 한다.
동일한 클록 신호(CLK1)로 메모리 장치(200)를 구동할 때, 도 10의 (B)에서는, 최초 풀 어드레스 전송을 위해서 명령1(CMD1) 및 명령2(CMD2)이 필요하고, 오프셋 어드레싱 방식으로 메모리 장치(200)가 구동 가능할 때, 오프셋 어드레스를 전송하는 명령3(CMD3)이 두 주기 클록 신호(CLK1)의 상승 에지(예를 들어, RE1) 마다 메모리 장치(200)로 전송될 수 있다. 즉, 명령3(CMD3)과 후속하는 명령3(CMD3) 사이의 기간 동안 명령을 전송하지 않는 구간(BL)이 존재할 수 있다. 그러면 도 10의 (C)에 도시된 클록 신호(CLK2)와 같이 클록 신호(CLK1) 대비 1/2의 주파수로 메모리 장치(200)를 구동할 수 있다.
도 10의 (C)에서, 클록 신호(CLK2)의 상승 에지(RE2, RE3)에 최초 풀 어드레스를 전송하기 위한 명령1(CMD1) 및 명령2(CMD2)이 전송되고, 오프셋 어드레스를 전송하는 명령3(CMD3)이 클록 신호(CLK2)의 상승 에지 마다 전송될 수 있다. 이와 같이, 오프셋 어드레싱에 따라 어드레스를 전송하기 위한 명령이 감소하여 동작 주파수가 낮아지면서 저전력 구동이 가능할 수 있다.
도 11은 일 실시예에 따른 컴퓨터 시스템을 나타내는 예시 블록도이다.
도 11을 참고하면, 컴퓨팅 시스템(700)은 프로세서(710), 메모리(720), 메모리 컨트롤러(730), 저장 장치(740), 통신 인터페이스(750) 및 버스(760)를 포함한다. 컴퓨팅 시스템(700)은 다른 범용적인 구성 요소를 더 포함할 수 있다.
프로세서(710)는 컴퓨팅 시스템(700)의 각 구성의 전반적인 동작을 제어한다. 프로세서(710)는 CPU(central processing unit), AP(application processor), GPU(graphic processing unit) 등의 다양한 프로세싱 유닛 중 적어도 하나로 구현될 수 있다. 어떤 실시예에서, 메모리 컨트롤러(730)는 프로세서(710)와 별도의 칩으로 제공될 수 있다. 어떤 실시예에서, 메모리 컨트롤러(730)는 프로세서(710)의 내부 구성으로 제공될 수 있다.
메모리(720)는 각종 데이터 및 명령을 저장할 수 있다. 메모리(720)는 도 1 내지 도 10를 참고로 하여 설명한 메모리 장치로 구현될 수 있다. 메모리 컨트롤러(730)는 메모리(720)로의 및 메모리(720)로부터의 데이터 또는 명령의 전달을 제어한다. 메모리 컨트롤러(730)는 도 1 내지 도 10을 참고로 하여 설명한 메모리 컨트롤러로 구현될 수 있다. 따라서 메모리 컨트롤러(730)는 버스(760)를 통해 프로세서(710)로부터의 복수의 요청에 대해서 오프셋 어드레싱 방식의 커맨드를 생성하여 메모리(720)로 전송하고, 오프셋 어드레싱 방식으로 요청한 어드레스를 저장할 수 있다. 메모리(720)는 오프셋 어드레스를 지시하는 명령을 수신하고, 명령에 따라 오프셋 어드레스와 기 저장한 해당 뱅크에서의 마지막 어드레스를 더해 풀 어드레스를 생성할 수 있다.
저장 장치(740)는 프로그램 및 데이터를 비임시적으로 저장한다. 어떤 실시예에서, 저장 장치(740)는 비휘발성 메모리로 구현될 수 있다. 통신 인터페이스(750)는 컴퓨팅 시스템(700)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(750)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 버스(760)는 컴퓨팅 시스템(700)의 구성 요소간 통신 기능을 제공한다. 버스(760)는 구성 요소간의 통신 프로토콜에 따라 적어도 하나의 유형의 버스를 포함할 수 있다.
어떤 실시예에서, 도 1 내지 도 11을 참고로 하여 설명한 각 구성요소 또는 둘 이상의 구성요소의 조합은 디지털 회로, 프로그램 가능한 또는 프로그램할 수 없는 로직 장치 또는 어레이, 응용 주문형 집적 회로(application specific integrated circuit, ASIC) 등으로 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (20)

  1. 제1 요청에 대해서 제1 뱅크에 대한 오프셋 어드레스 및 상기 오프셋 어드레스를 지시하는 명령을 생성하여 제공하는 메모리 컨트롤러; 및
    복수의 뱅크를 포함하고, 상기 복수의 뱅크 중 상기 제1 뱅크에 대하여, 상기 명령에 따라 상기 오프셋 어드레스와 상기 제1 뱅크에 대한 기본 어드레스를 더해 제1 어드레스를 생성하며, 상기 제1 뱅크의 상기 제1 어드레스에 상기 명령에 따른 메모리 동작을 수행하는 메모리 장치를 포함하는,
    반도체 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제1 뱅크에 스케쥴링한 상기 제1 요청에 대응하는 상기 제1 뱅크에서의 상기 제1 어드레스가 상기 제1 요청 직전에 상기 제1 뱅크로 스케쥴링한 제2 요청에 대응하는 제2 어드레스를 기준으로 오프셋 범위 내일 때 상기 제2 어드레스를 기준으로 상기 제1 어드레스에 대한 오프셋 어드레스를 생성하고,
    상기 기본 어드레스는 상기 제2 어드레스인,
    반도체 메모리 시스템.
  3. 제2항에 있어서,
    상기 명령은,
    상기 오프셋 어드레스를 이용하는 활성화 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Activate 명령;
    상기 오프셋 어드레스를 이용하는 읽기 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Read 명령; 및
    상기 오프셋 어드레스를 이용하는 쓰기 동작을 지시하고, 명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Offset-Write 명령 중 적어도 하나를 포함하는,
    반도체 메모리 시스템.
  4. 제3항에 있어서,
    상기 Offset-Activate 명령의 오프셋은 오프셋 행 어드레스이고,
    상기 Offset-Read 명령 및 상기 Offset-Write 명령 각각의 오프셋은 오프셋 열 어드레스인,
    반도체 메모리 시스템.
  5. 제2항에 있어서,
    상기 명령은,
    상기 오프셋 어드레스를 이용하는 활성화 동작을 지시하고, 명령 구분자 및 뱅크 주소를 포함하는 Offset-Activate 명령;
    상기 오프셋 어드레스를 이용하는 읽기 동작을 지시하고, 명령 구분자 및 를 포함하는 Offset-Read 명령;
    상기 오프셋 어드레스를 이용하는 쓰기 동작을 지시하고, 명령 구분자 및 뱅크 주소를 포함하는 Offset-Write 명령; 및
    명령 구분자, 뱅크 주소, 및 오프셋을 포함하는 Set-Offset 명령 중 적어도 하나를 포함하는,
    반도체 메모리 시스템.
  6. 제5항에 있어서,
    상기 Set-Offset 명령의 오프셋은,
    상기 오프셋 어드레스에 대응하는 고정된 값인,
    반도체 메모리 시스템.
  7. 제1항에 있어서,
    상기 메모리 장치는,
    상기 명령을 디코딩하여 상기 제1 뱅크에 대한 상기 오프셋 어드레스를 식별하고, 상기 제2 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성하는 어드레스 디코더를 포함하는,
    반도체 메모리 시스템.
  8. 제7항에 있어서,
    상기 어드레스 디코더는,
    상기 복수의 뱅크 각각에 대해서 마지막으로 구동된 메모리 행 및 메모리 열에 대한 기본 행 어드레스 및 기본 열 어드레스를 저장한 어드레스 테이블;
    상기 어드레스 테이블에서 상기 제1 뱅크에 대응하는 기본 행 어드레스 또는 기본 열 어드레스를 중 하나를 제공하는 행/열 선택기; 및
    상기 오프셋 어드레스와 상기 행/열 선택기로부터 제공되는 상기 기본 행 어드레스 및 상기 기본 열 어드레스 중 하나를 더하여 상기 제1 어드레스를 생성하는 어드레스 합산기를 포함하는,
    반도체 메모리 시스템.
  9. 제8항에 있어서,
    상기 명령이 오프셋 행 어드레스를 지시하는 경우,
    상기 행/열 선택기는 상기 기본 행 어드레스를 상기 어드레스 합산기에 제공하고, 상기 어드레스 합산기는 상기 기본 행 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성하는,
    반도체 메모리 시스템.
  10. 제8항에 있어서,
    상기 명령이 오프셋 열 어드레스를 지시하는 경우,
    상기 행/열 선택기는 상기 기본 열 어드레스를 상기 어드레스 합산기에 제공하고, 상기 어드레스 합산기는 상기 기본 열 어드레스와 상기 오프셋 어드레스를 더해 상기 제1 어드레스를 생성하는,
    반도체 메모리 시스템.
  11. 제8항에 있어서,
    상기 어드레스 디코더는,
    상기 제1 어드레스를 상기 어드레스 테이블에서 상기 제1 뱅크에 대응하는 기본 행 어드레스 및 기본 열 어드레스 중 하나로 업데이트하는 어드레스 디먹스를 더 포함하는,
    반도체 메모리 시스템.
  12. 제8항에 있어서,
    상기 어드레스 디코더는,
    상기 제1 어드레스가 상기 제2 어드레스를 기준으로 오프셋 범위 내에 있을 때, 상기 어드레스 합산기로부터 제공되는 상기 제1 어드레스를 출력하고, 상기 제1 어드레스가 상기 제2 어드레스를 기준으로 오프셋 범위 내에 있지 않을 때, 상기 메모리 컨트롤러로부터 제공되는 상기 제1 어드레스를 출력하는 어드레스 먹스를 더 포함하는,
    반도체 메모리 시스템.
  13. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 오프셋 어드레스를 생성하고, 상기 오프셋 어드레스에 따른 메모리 동작을 지시하는 명령을 생성하며, 상기 명령을 구성하는 복수의 신호는 칩 선택 신호를 포함하고, 상기 칩 선택 신호를 DDR 방식으로 상기 메모리 장치에 제공하는,
    반도체 메모리 시스템.
  14. 메모리 장치의 복수의 뱅크에 대응하고, 복수의 요청이 큐 되어 있는 복수의 뱅크 큐; 및
    상기 복수의 뱅크 큐 각각에 대응하고, 상기 각 뱅크 큐의 복수의 요청에 대한 처리 순서를 스케쥴링하는 복수의 뱅크 스케쥴러를 포함하고,
    상기 복수의 뱅크 스케쥴러 각각은,
    대응하는 뱅크에서 마지막으로 구동된 메모리 영역에 대한 마지막 어드레스와 이번 요청에 대응하는 어드레스 간의 어드레스 차가 오프셋 범위 내일 때, 상기 이번 요청에 대응하는 어드레스와 상기 마지막 어드레스 간의 차에 따라 오프셋 어드레스를 생성하는,
    메모리 컨트롤러.
  15. 제14항에 있어서,
    상기 복수의 뱅크 스케쥴러 각각은,
    상기 이번 요청에 대응하는 어드레스를 상기 오프셋 어드레스로 생성한 경우, 상기 오프셋 어드레스를 지시하는 명령을 생성하는,
    메모리 컨트롤러.
  16. 제14항에 있어서,
    상기 복수의 뱅크 스케쥴러 각각은,
    대응하는 뱅크 큐에 큐잉된 복수의 요청 중 오프셋 어드레스에 해당하는 요청을 풀 어드레스에 해당하는 요청보다 우선 순위로 결정하는,
    메모리 컨트롤러.
  17. 제14항에 있어서,
    상기 복수의 뱅크 스케쥴러 각각은,
    상기 대응하는 뱅크에서의 상기 이번 요청에 대응하는 어드레스를 마지막 어드레스로 저장하는 레지스터를 포함하는,
    메모리 컨트롤러.
  18. 제14항에 있어서,
    상기 복수의 뱅크 스케쥴러 각각은,
    대응하는 뱅크에서 액티브 상태인 메모리 행이 없는 경우, 상기 대응하는 뱅크에서 마지막으로 액티브 상태였던 메모리 행의 제1 어드레스와 상기 이번 요청에 대응하는 제2 어드레스 간의 차이가 상기 오프셋 범위 내인 경우, 상기 제1 어드레스와 상기 제2 어드레스 간의 차를 오프셋 어드레스로 생성하는,
    메모리 컨트롤러.
  19. 메모리 컨트롤러로부터 제공된 명령 및 어드레스를 디코딩하는 방법에 있어서,
    상기 명령을 디코딩하여 상기 어드레스가 오프셋 행 어드레스 또는 오프셋 열 어드레스인지 판단하는 단계;
    상기 판단 결과 상기 어드레스가 오프셋 행 어드레스를 포함하는 경우, 상기 어드레스에 대응하는 뱅크에서 마지막으로 구동된 메모리 행에 대한 기본 행 어드레스와 상기 오프셋 행 어드레스 더해 행 어드레스를 생성하는 단계; 및
    상기 판단 결과 상기 어드레스가 오프셋 열 어드레스를 포함하는 경우, 상기 어드레스에 대응하는 뱅크에서 마지막으로 구동된 메모리 열에 대한 기본 열 어드레스 및 상기 오프셋 열 어드레스를 더해 열 어드레스를 생성하는 단계를 포함하는,
    어드레스 디코딩 방법.
  20. 제19항에 있어서,
    상기 행 어드레스 또는 상기 열 어드레스를 어드레스 테이블에 업데이트는 하는 단계를 더 포함하고,
    상기 어드레스 테이블은, 뱅크 별 마지막으로 구동된 메모리 행 및 메모리 열에 대한 기본 행 어드레스 및 기본 열 어드레스를 저장하고 있는,
    어드레스 디코딩 방법.
KR1020220164892A 2022-11-30 2022-11-30 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템 KR20240081027A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220164892A KR20240081027A (ko) 2022-11-30 2022-11-30 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템
US18/209,057 US20240177746A1 (en) 2022-11-30 2023-06-13 Address decoding method, and memory controller and semiconductor memory system using the same
EP23199513.5A EP4379721A1 (en) 2022-11-30 2023-09-25 Address decoding method, and memory controller and semiconductor memory system using the same
CN202311597996.4A CN118113625A (zh) 2022-11-30 2023-11-27 地址解码方法以及存储器控制器和半导体存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220164892A KR20240081027A (ko) 2022-11-30 2022-11-30 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20240081027A true KR20240081027A (ko) 2024-06-07

Family

ID=88197193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220164892A KR20240081027A (ko) 2022-11-30 2022-11-30 어드레스 디코딩 방법, 및 이를 이용한 메모리 컨트롤러 및 반도체 메모리 시스템

Country Status (4)

Country Link
US (1) US20240177746A1 (ko)
EP (1) EP4379721A1 (ko)
KR (1) KR20240081027A (ko)
CN (1) CN118113625A (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102533229B1 (ko) * 2015-11-27 2023-05-17 삼성전자주식회사 상대 주소를 사용하는 메모리 장치의 접근 방법
KR20180021513A (ko) * 2016-08-22 2018-03-05 삼성전자주식회사 오프셋 커맨드를 지원하는 메모리 시스템

Also Published As

Publication number Publication date
CN118113625A (zh) 2024-05-31
EP4379721A1 (en) 2024-06-05
US20240177746A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
JP4569915B2 (ja) 半導体記憶装置
EP1936628B1 (en) Memory device, memory controller and memory system
US7564733B2 (en) Memory device and method having programmable address configurations
US8305834B2 (en) Semiconductor memory with memory cell portions having different access speeds
EP1415304B1 (en) Memory device having different burst order addressing for read and write operations
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
US6829195B2 (en) Semiconductor memory device and information processing system
US20020136079A1 (en) Semiconductor memory device and information processing system
JP5204777B2 (ja) メモリ装置及びその制御方法
US11894096B2 (en) Memory systems for high speed scheduling
US6545932B1 (en) SDRAM and method for data accesses of SDRAM
JP2001035153A (ja) 半導体記憶装置
EP4379721A1 (en) Address decoding method, and memory controller and semiconductor memory system using the same
US6433786B1 (en) Memory architecture for video graphics environment
JP2000268566A (ja) 同期型半導体記憶装置
TW202424967A (zh) 半導體記憶體系統、記憶體控制器及位址解碼方法
JP2006215961A (ja) アドレシング方法
EP4231162A1 (en) Memory system including memory device and memory controller, and operating method thereof
US20230176786A1 (en) Read clock start and stop for synchronous memories
JP4549001B2 (ja) 情報処理装置及び半導体集積回路
JPH09251773A (ja) 半導体記憶装置
KR20230125706A (ko) 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법
CN117789785A (zh) 存储器件及其操作方法
KR20160110690A (ko) 디램 메모리 어드레스 맵핑 방법 및 그 방법을 이용하는 메모리 시스템
JP2002260385A (ja) 半導体記憶装置