KR20210155270A - 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20210155270A
KR20210155270A KR1020200072577A KR20200072577A KR20210155270A KR 20210155270 A KR20210155270 A KR 20210155270A KR 1020200072577 A KR1020200072577 A KR 1020200072577A KR 20200072577 A KR20200072577 A KR 20200072577A KR 20210155270 A KR20210155270 A KR 20210155270A
Authority
KR
South Korea
Prior art keywords
output
data
read
input
row
Prior art date
Application number
KR1020200072577A
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 KR1020200072577A priority Critical patent/KR20210155270A/ko
Priority to US17/151,496 priority patent/US11468924B2/en
Priority to CN202110270685.1A priority patent/CN113808629A/zh
Publication of KR20210155270A publication Critical patent/KR20210155270A/ko
Priority to US17/902,562 priority patent/US11894096B2/en

Links

Images

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
    • 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/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering 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/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • 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/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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

Landscapes

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

Abstract

본 개시의 메모리 장치는, 데이터가 저장되는 메모리 영역과, 외부 버스를 통해 데이터 입출력을 수행하는 데이터 입출력부와, 메모리영역 및 데이터 입출력 단자 사이에 배치되어, 메모리 영역으로부터 전송되는 데이터를 저장하는 입출력 버퍼부와, 그리고 메모리영역 및 상기 입출력 버퍼부 사이의 데이터 전송 경로를 제공하고, 외부 버스의 대역 폭보다 큰 제1 대역 폭을 갖는 제1 내부 데이터 전송 라인을 포함한다. 본 개시의 메모리 장치는, 제1 내부 데이터 전송 라인을 통한 메모리영역 및 입출력 버퍼부 사이의 데이터 전송 과정에서, 제1 동작 모드에서 제1 대역 폭의 일부만 사용되고, 제2 동작 모드에서 제1 대역 폭이 모두 사용되도록 구성된다.

Description

메모리 장치 및 이를 포함하는 메모리 시스템{Memory device and memory system with the memory device}
본 개시의 여러 실시예들은 메모리 장치 및 메모리 시스템에 관한 것으로서, 특히 고속 동작을 위한 메모리 장치 및 메모리 시스템에 관한 것이다.
컴퓨터 시스템의 고성능화를 위해서는 고속의 중앙처리장치에 대응하는 고속 데이터 전송이 가능한 메모리 시스템의 개발이 요구된다. 이에 따라 메모리 장치의 대역폭(bandwidth)을 향상시키기 위한 노력이 진행되고 있다. 일반적으로 디램(DRAM)과 같은 메모리 장치는, 내부 대역폭(internal bandwidth)과 외부 대역폭(external bandwidth)이 일치되도록 설계된다. 메모리 장치의 외부 대역폭 증가는, 입출력의 제한으로 인해 한계가 있으며, 내부 대역폭 증가 또한 내부에서의 데이터 전송 속도의 제한으로 인해 한계가 있다.
본 출원이 해결하고자 하는 과제는, 고속 동작이 가능하도록 하는 메모리 장치를 제공하는 것이다.
본 출원이 해결하고자 하는 다른 과제는, 위와 같은 메모리 장치를 갖는 메모리 시스템을 제공하는 것이다.
본 개시의 일 예에 따른 메모리 장치는, 메모리 장치는, 데이터가 저장되는 메모리 영역과, 외부 버스를 통해 데이터 입출력을 수행하는 데이터 입출력부와, 메모리영역 및 데이터 입출력 단자 사이에 배치되어, 메모리 영역으로부터 전송되는 데이터를 저장하는 입출력 버퍼부와, 그리고 메모리영역 및 상기 입출력 버퍼부 사이의 데이터 전송 경로를 제공하고, 외부 버스의 대역 폭보다 큰 제1 대역 폭을 갖는 제1 내부 데이터 전송 라인을 포함한다. 본 개시의 메모리 장치는, 제1 내부 데이터 전송 라인을 통한 메모리영역 및 입출력 버퍼부 사이의 데이터 전송 과정에서, 제1 동작 모드에서 제1 대역 폭의 일부만 사용되고, 제2 동작 모드에서 제1 대역 폭이 모두 사용되도록 구성된다.
본 개시의 일 예에 따른 메모리 장치는, 복수의 뱅크들과, 외부 버스를 통해 데이터 입출력을 수행하는 데이터 입출력부와, 복수의 뱅크들 및 데이터 입출력 단자 사이에 배치되어 데이터 전송 경로를 제공하는 글로벌 데이터 전송 라인과, 복수의 뱅크들로부터 글로벌 데이터 전송 라인을 통해 전송되는 데이터를 저장하는 입출력 버퍼부와, 그리고 글로벌 데이터 전송 라인 및 입출력 버퍼부 사이의 데이터 전송 경로를 제공하는 제1 내부 데이터 전송 라인을 포함한다. 복수의 뱅크들 각각으로부터 글로벌 데이터 전송 라인으로의 데이터 전송은, 외부 버스의 대역 폭과 동일한 제1 대역 폭으로 수행되도록 구성되고, 그리고 제1 내부 데이터 전송 라인은, 제1 대역 폭에 상기 뱅크들의 개수를 곱한 수치와 동일한 제2 대역폭을 갖는다.
본 개시의 일 예에 다른 메모리 시스템은, 데이터가 저장되는 메모리 영역과, 메모리 영역으로부터 전송되는 데이터를 저장하는 입출력 버퍼부를 갖는 메모리 장치를 포함한다. 메모리 시스템은, 메모리 장치의 리드 동작을 제어하는 메모리 컨트롤러를 포함한다. 메모리 장치는, 메모리 컨트롤러로부터 전송되는 외부 커맨드에 응답하여 로우 어드레스에 의해 선택되는 메모리 영역의 선택 로우의 모든 컬럼들의 데이터를 입출력 버퍼부에 저장시키고, 입출력 버퍼부에 저장된 데이터 중 컬럼 어드레스에 의해 선택되는 선택 컬럼의 데이터가 출력되도록 구성된다. 메모리 컨트롤러는, 메모리 장치의 리드 동작을 제어하는 리드 요청들이 동일한 로우 어드레스를 갖는 리드 요청들이 연속적으로 수행되도록 스케줄링을 수행하도록 구성된다.
본 개시의 일 예에 다른 메모리 시스템은, 복수의 뱅크들과, 복수의 뱅크들로부터 전송되는 데이터를 저장하는 입출력 버퍼부를 갖는 메모리 장치를 포함한다. 메모리 시스템은, 메모리 장치의 리드 동작을 제어하는 메모리 컨트롤러를 포함한다. 메모리 장치는, 메모리 컨트롤러로부터 전송되는 외부 커맨드에 응답하여 로우 어드레스에 의해 선택되는 모든 뱅크들의 선택 로우의 데이터 중 컬럼 어드레스에 의해 선택되는 선택 컬럼의 데이터를 상기 입출력 버퍼부에 저장시키고, 입출력 버퍼부에 저장된 데이터 중 뱅크 어드레스에 의해 선택되는 선택 뱅크의 데이터가 출력되도록 구성된다. 그리고 메모리 컨트롤러는, 메모리 장치의 리드 동작을 제어하는 리드 요청들이 동일한 로우 어드레스 및 동일한 컬럼 어드레스를 갖는 리드 요청들이 연속적으로 수행되도록 스케줄링을 수행하도록 구성된다.
여러 실시예들에 따르면, 메모리 장치의 고속 동작이 가능하며, 특히 로우 어드레스 및 컬럼 어드레스에 의한 스케줄링 동작을 통해 리드 동작 사이에 요구되는 시간 간격을 단축시킬 수 있다는 이점이 제공된다.
도 1은 본 개시의 일 예에 따른 메모리 장치를 나타내 보인 도면이다.
도 2는 도 1의 메모리 장치의 메모리 영역을 구성하는 매트릭스 구성의 일 예를 나타내 보인 도면이다.
도 3은 도 1의 메모리 장치의 입출력 버퍼부 구성의 일 예를 나타내 보인 도면이다.
도 4는 본 개시의 일 예에 따른 메모리 장치의 제1 동작 모드 및 제2 동작 모드에서 메모리 영역으로부터 출력되는 리드 데이터의 비트 수를 설명하기 위해 나타내 보인 도면이다.
도 5는 본 개시의 일 예에 따른 메모리 장치의 제1 동작 모드에서 리드 동작을 설명하기 위해 나타내 보인 도면이다.
도 6은 본 개시의 일 예에 따른 메모리 장치의 제1 동작 모드에서 메모리 영역으로부터 출력되는 리드 데이터의 비트 수를 설명하기 위해 나타내 보인 도면이다.
도 7은 본 개시의 일 예에 따른 메모리 장치의 제1 동작 모드에서 입출력 버퍼부의 동작을 설명하기 위해 나타내 보인 도면이다.
도 8은 본 개시의 일 예에 따른 메모리 장치의 제2 동작 모드에서 리드 동작을 설명하기 위해 나타내 보인 도면이다.
도 9는 본 개시의 일 예에 따른 메모리 장치의 제2 동작 모드에서 메모리 영역으로부터 출력되는 리드 데이터의 비트 수를 설명하기 위해 나타내 보인 도면이다.
도 10은 본 개시의 일 예에 따른 메모리 장치의 제2 동작 모드에서 입출력 버퍼부의 동작을 설명하기 위해 나타내 보인 도면이다.
도 11은 본 개시의 다른 예에 따른 메모리 장치의 구성을 나타내 보인 블록도이다.
도 12는 도 11의 메모리 장치의 입출력 버퍼부 구성의 일 예를 나타내 보인 블록도이다.
도 13은 본 개시의 다른 예에 따른 메모리 장치의 제2 동작 모드에서의 리드 동작을 설명하기 위해 나타내 보인 도면이다.
도 14는 본 개시의 다른 예에 따른 메모리 장치의 제2 동작 모드에서의 리드 동작을 설명하기 위해 나타내 보인 타이밍도이다.
도 15는 본 개시의 또 다른 예에 따른 메모리 장치의 구성을 나타내 보인 블록도이다.
도 16은 본 개시의 또 다른 예에 따른 메모리 장치가 패키지 형태로 구현된 예를 설명하기 위해 나타내 보인 도면이다.
도 17은 본 개시의 일 예에 따른 메모리 시스템을 나타내 보인 블록도이다.
도 18은 도 17의 메모리 시스템의 메모리 컨트롤러를 구성하는 리드 큐에 리드 요청들이 저장된 일 예를 나타내 보인 도면이다.
도 19는 도 18의 리드 큐의 구성에 따른 리드 동작들을 설명하기 위해 나타내 보인 타이밍도이다.
도 20은 도 17의 메모리 시스템의 메모리 컨트롤러를 구성하는 리드 큐에 리드 요청들이 스케줄링에 의해 출력 순서가 변경된 상태로 저장된 일 예를 나타내 보인 도면이다.
도 21은 도 20의 리드 큐의 구성에 따른 리드 동작들을 설명하기 위해 나타내 보인 타이밍도이다.
도 22는 도 17의 메모리 시스템의 메모리 컨트롤러에서의 스케줄링 과정의 일 예를 설명하기 위해 나타내 보인 플로 챠트이다.
도 23은 도 17의 메모리 시스템의 메모리 컨트롤러를 구성하는 리드 큐에 리드 요청들이 저장된 다른 예를 나타내 보인 도면이다.
도 24는 도 23의 리드 큐의 구성에 따른 리드 동작들을 설명하기 위해 나타내 보인 타이밍도이다.
도 25는 도 17의 메모리 시스템의 메모리 컨트롤러를 구성하는 리드 큐에 리드 요청들이 스케줄링에 의해 출력 순서가 변경된 상태로 저장된 다른 예를 나타내 보인 도면이다.
도 26은 도 25의 리드 큐의 구성에 따른 리드 동작들을 설명하기 위해 나타내 보인 타이밍도이다.
도 27은 도 17의 메모리 시스템의 메모리 컨트롤러에서의 스케줄링 과정의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다.
본 출원의 예의 기재에서 "제1" 및 "제2"와 같은 기재는 요소를 구분하기 위한 것이며, 부재 자체를 한정하거나 특정한 순서를 의미하는 것으로 사용된 것은 아니다. 어느 한 구성 요소가 다른 구성 요소에 "연결되어 있다"거나 "접속되어 있다"의 기재는, 다른 구성 요소에 전기적 또는 기계적으로 직접 연결되어 있거나 또는 접속되어 있을 수 있으며, 또는, 중간에 다른 별도의 구성 요소들이 개재되어 연결 관계 또는 접속 관계를 구성할 수도 있다. "기 설정된"이라는 용어는 프로세스나 알고리즘에서 매개변수를 사용할 때 매개변수의 수치가 미리 결정되어 있음을 의미한다. 매개변수의 수치는 실시예에 따라서 프로세스나 알고리즘이 시작할 때 설정되거나 프로세스나 알고리즘이 수행되는 구간 동안 설정될 수 있다. "로직하이레벨" 및 "로직로우레벨"은 신호들의 로직레벨들을 설명하기 위해 사용된다. "로직하이레벨"을 갖는 신호는 "로직로우레벨"을 갖는 신호와 구별된다. 예를 들어, 제1 전압을 갖는 신호가 "로직하이레벨"에 대응할 때 제2 전압을 갖는 신호는 "로직로우레벨"에 대응할 수 있다. 일 실시예에 따라 "로직하이레벨"은 "로직로우레벨"보다 큰 전압으로 설정될 수 있다. 한편, 신호들의 로직레벨들은 실시예에 따라서 다른 로직레벨 또는 반대의 로직레벨로 설정될 수 있다. 예를 들어, 로직하이레벨을 갖는 신호는 실시예에 따라서 로직로우레벨을 갖도록 설정될 수 있고, 로직로우레벨을 갖는 신호는 실시예에 따라서 로직하이레벨을 갖도록 설정될 수 있다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 아래에서 설명되는 여러 실시예들은 디램(DRAM)을 예로 들었지만, 이에 제한되지 않는다는 것은 자명하다. 예컨대 SRAM, 동기식 DRAM(SDRAM), 더블 데이터 레이트 동기식 DRAM(DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM 등), 그래픽 더블 데이터 레이트 동기식 DRAM(GDDR, GDDR2, GDDR3 등), 쿼드 데이터 레이트 DRAM (QDR DRAM), RAMBUS XDR DRAM(XDR DRAM), 패스트 페이지 모드 DRAM (FPM DRAM), 비디오 DRAM (VDRAM), 확장 데이터 출력형 DRAM (EDO DRAM), 버스트 EDO DRAM(BEDO DRAM), 멀티뱅크 DRAM(MDRAM), 동기식 그래픽 RAM(SGRAM), 및/또는 기타 다른 여러 형태의 DRAM에도 동일하게 적용될 수 있다.
도 1은 본 개시의 일 예에 따른 메모리 장치(100)를 나타내 보인 블록도이다. 그리고 도 2는 도 1의 메모리 장치(100)의 메모리 영역(111)을 구성하는 매트릭스를 나타내 보인 도면이다. 먼저 도 1을 참조하면, 메모리 장치(100)는, 메모리 영역(memory area)(111)과, 로우 디코더(row decoder)(112)와, 컬럼 디코더(column decoder)(113)와, 커맨드/어드레스 디코더(cmd/addr decoder)(120)와, 입출력 버퍼부(I/O buffering part)(130)와, 그리고 데이터 입출력부(DQ)(140)를 포함하여 구성될 수 있다. 일 예에서 메모리 영역(111)은, 복수개, 예컨대 K개의 매트릭스들(MAT_0, MAT_1, …, MAT_(K-1))을 포함하는 뱅크(bank)로 구성될 수 있다. 메모리 영역(111) 내에서의 매트릭스들(MAT_0, MAT_1, …, MAT_(K-1))의 배치 구조는 다양하게 설정될 수 있다.
도 2에 나타낸 바와 같이, 매트릭스(MAT)는, 메모리 셀 어레이(114)와, 센스 앰프 회로(115)를 포함할 수 있다. 이와 같은 매트릭스(MAT) 구조는, 도 1의 메모리 영역(111)을 구성하는 매트릭스들(MAT_0, …, MAT_(K-1)) 각각에 대해 동일하게 적용될 수 있다. 메모리 셀 어레이(114)는, 복수의 로우들 및 복수의 컬럼들의 교차점들 각각에 메모리 셀(memory cell)이 배치되는 구조를 가질 수 있다. 일 예에서 로우들이 "M"개(M은 2 이상의 자연수)이고, 컬럼들이 "N"개(N은 2 이상의 자연수)인 경우, 매트릭스(MAT) 내에는 (M*N)개의 메모리 셀들이 배치된다. "M"개의 로우들 각각에는, "N"개의 메모리 셀들이 배치된다. "M"개의 로우들 각각은, 로우 어드레스(row address)(R_0, R_1, R_2, …, R_(M-1))에 의해 선택될 수 있다. "N"개의 컬럼들 각각에는, "M"개의 메모리 셀들이 배치된다. "N"개의 컬럼들 각각은, 컬럼 어드레스(column address)(C_0, C_1, C_2, …, C_(N-1))에 의해 선택될 수 있다. 따라서 하나의 로우 어드레스 및 하나의 컬럼 어드레스에 의해 하나의 메모리 셀이 선택될 수 있다. 이하에서는 로우 어드레스에 의해 선택된 로우를 "선택 로우"로 명명하고, 컬럼 어드레스에 의해 선택된 컬럼을 "선택 컬럼"으로 명명하기로 한다.
센스 앰프 회로(115)는, 컬럼들(C_0, C_1, C_2, …, C_(N-1))과 결합되는 입력라인들(SI_0, …, SI_(N-1)) 및 출력라인들(SO_0, …, SO_(N-1))을 갖는다. 센스 앰프 회로(115)의 입력라인들(SI_0, …, SI_(N-1)) 각각으로 선택 로우의 메모리 셀들이 갖는 데이터가 전송될 수 있다. 예컨대 센스 앰프 회로(115)의 첫번째 입력라인(IS_0)을 통해 선택 로우의 첫번째 컬럼(C_0)의 메모리 셀의 데이터가 전송될 수 있다. 센스 앰프 회로(115)의 두번째 입력라인(SI_1)을 통해서는 선택 로우의 두번째 컬럼(C_1)의 메모리 셀의 데이터가 전송될 수 있다. 동일한 방식으로 "N"번째 입력라인(SI_(N-1))을 통해서는 선택 로우의 "N"번째 컬럼(C_(N-1))의 메모리 셀의 데이터가 전송될 수 있다. 일 예에서 메모리 셀의 데이터는, 로직 하이, 즉 "1"의 값이거나, 또는 로직 로우, 즉 "0"의 값을 의미할 수 있다.
센스 앰프 회로(115)는, 입력라인들(SI_0, …, SI_(N-1))로 입력되는 데이터에 대한 증폭 동작을 수행한 후, 그 결과 데이터를 출력라인들(SO_0, …, SO_(N-1))을 통해 출력시킬 수 있다. 출력라인들(SO_0, …, SO_(N-1))을 통해 출력되는 데이터는, 입력라인들(SI_0, …, SI_(N-1))을 통해 입력되는 데이터가 증폭된 데이터이지만, 이하에서는 설명의 간단을 위해 증폭 여부에 대해 구분하지 않기로 한다. 센스 앰프 회로(115)의 출력라인들(SO_0, …, SO_(N-1)) 각각은, 입력라인들(SI_0, …, SI_(N-1)) 각각에 대응된다. 예컨대 첫번째 출력라인(SO_0)은 첫번째 입력라인(SL_0)에 대응된다. 이에 따라 첫번째 입력라인(SL_0)을 통해 입력되는 데이터는 첫번째 출력라인(SO_0)을 통해 출력될 수 있다. 마찬가지로 N번째 입력라인(SO_(N-1))을 통해 입력되는 데이터는 N번째 출력라인(SO_(N-1))을 통해 출력될 수 있다. 본 예에서는 로우 어드레스 "R_2"에 의해 세번째 로우가 선택 로우로 지정된 경우를 전제로 하기로 한다. 이 경우, 첫번째 출력라인(SO_0)을 통해 출력되는 데이터(D0)는, "R_2"의 로우 어드레스 및 "C_0"의 컬럼 어드레스에 의해 선택된 메모리 셀의 데이터에 해당한다. 두번째 출력라인(SO_1)을 통해서 출력되는 데이터(D1)는, "R_2"의 로우 어드레스 및 "C_1"의 컬럼 어드레스에 의해 선택된 메모리 셀의 데이터에 해당한다. 나머지 출력라인들(SO_2, …, SO_(N-1)) 각각에 동일한 출력 방식이 적용된다.
센스 앰프 회로(115)를 통해 출력되는 데이터의 비트 수는 메모리 장치(100)의 동작 모드에 따라 다를 수 있다. 메모리 장치(100)는 제1 동작 모드 또는 제2 동작 모드로 동작할 수 있다. 이하에서 "제1 동작 모드"는 일반 속도 동작 모드로 정의되고, "제2 동작 모드"는 고속 동작 모드로 정의될 수 있다. 일반 속도 동작 모드는, 디램(DRAM)과 같은 메모리 장치의 통상적인 동작 모드로 이해될 수 있다. 반면에, 고속 동작 모드는 일반 속도 동작 모드에서의 동작 속도보다 상대적으로 빠른 동작 속도를 나타내는 동작 모드인 것으로 이해될 수 있다.
제1 동작 모드에서, 센스 앰프 회로(115)는, 출력라인들(SO_0, …, SO_(N-1))을 통해 컬럼 어드레스에 의한 선택 컬럼에 해당하는 데이터만을 출력시킨다. 즉 N개의 출력라인들(SO_0, …, SO_(N-1)) 중 하나의 출력라인을 통해서만 데이터가 출력된다. 따라서 제1 동작 모드에서, 센스 앰프 회로(115)로부터 1비트 데이터가 출력된다. 반면에 제2 동작 모드에서, 센스 앰프 회로(115)는, 출력라인들(SO_0, …, SO_(N-1)) 모두를 통해 선택 로우의 모든 컬럼들에 해당하는 데이터를 출력시킨다. 따라서 제2 동작모드에서, 센스 앰프 회로(115)로부터 N비트 데이터가 출력된다. 일 예에서 제2 동작모드에서, 센스 앰프 회로(115)로부터 출력되는 N비트 데이터는 병렬 모드로 출력된다.
다시 도 1을 참조하면, 로우 디코더(112)는, 커맨드(CMD) 및 로우 어드레스(ADDR_R)를 입력받고, 입력된 로우 어드레스(ADDR_R)에 의해 지정되는 로우, 즉 선택 로우를 활성화시킨다. 로우 어드레스(ADDR_R)에 의한 선택 로우의 지정은, 제1 동작 모드 및 제2 동작 모드에서 동일하게 수행된다. 컬럼 디코더(113)는, 제1 동작 모드에서 커맨드(CMD) 및 컬럼 어드레스(ADDR_C)를 입력받고, 입력된 컬럼 어드레스(ADDR_C)에 의해 지정되는 컬럼, 즉 선택 컬럼을 활성화시킨다. 컬럼 디코더(113)는, 제2 동작 모드에서 컬럼 어드레스(ADDR_C)는 입력받지 않고 커맨드(CMD)만 입력받는다. 도 2를 참조하여 설명한 바와 같이, 제2 동작 모드에서는 메모리 영역(111)을 구성하는 매트릭스들(MAT_0, …, MAT_(K-1)) 각각으로부터 선택 로우의 모든 컬럼들의 데이터가 출력된다. 즉 제2 동작 모드에서는 컬럼 어드레스(ADDR_C)에 의한 선택 컬럼의 지정이 불필요하다. 따라서 본 예에 따른 메모리 장치(100)의 컬럼 디코더(113)는, 제2 동작 모드에서, 컬럼 어드레스(ADDR_C)에 의해 선택 컬럼을 지정하는 동작을 수행하지 않는다.
커맨드/어드레스 디코더(120)는, 외부, 예컨대 메모리 컨트롤러로부터 전송되는 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)를 입력받는다. 커맨드/어드레스 디코더(120)는, 입력된 외부 커맨드(EXT_CMD)를 디코딩하고, 그 결과인 커맨드(CMD)를 생성하여 출력시킨다. 또한 커맨드/어드레스 디코더(120)는, 입력된 외부 어드레스(EXT_ADDR)를 디코딩하고, 그 결과 로우 어드레스(ADDR_R) 및 컬럼 어드레스(ADDR_C)를 생성하여 출력시킨다. 커맨드/어드레스 디코더(120)로부터 출력되는 일부 커맨드(CMD)는 동작 모드에 상관 없이, 로우 디코더(112)에 입력된다. 반면에 커맨드/어드레스 디코더(120)로부터 출력되는 일부 커맨드(CMD)는 동작모드에 따라 다른 형태로 컬럼 디코더(113)에 입력될 수 있다.
커맨드/어드레스 디코더(120)로부터 출력되는 로우 어드레스(ADDR_R)는, 동작 모드에 상관 없이, 로우 디코더(112)에 입력된다. 제1 동작 모드에서, 커맨드/어드레스 디코더(120)로부터 출력되는 컬럼 어드레스(ADDR_CR)는, 컬럼 디코더(113)에 입력된다. 반면에 제2 동작 모드에서, 커맨드/어드레스 디코더(120)로부터 출력되는 컬럼 어드레스(ADDR_CR)는, 컬럼 디코더(113)에 입력되지 않는다. 제2 동작 모드에서, 커맨드/어드레스 디코더(120)로부터 출력되는 컬럼 어드레스(ADDR_CR)는, 컬럼 디코더(113)에 입력되는 대신에 입출력 버퍼부(130)에 입력되는데, 이에 대해서는 아래에서 보다 상세하게 설명하기로 한다.
일 예에서 메모리 장치(100)에 대한 리드 동작인 경우, 커맨드/어드레스 디코더(120)는, 액티브 커맨드(ACT), 리드 커맨드(RD), 및 프리차지 커맨드(PRE)와, 로우 어드레스(ADDR_R) 및 컬럼 어드레스(ADDR_C)를 출력할 수 있다. 먼저 커맨드/어드레스 디코더(120)는, 액티브 커맨드(ACT) 및 로우 어드레스(ADDR_R)를 로우 디코더(112)로 전송한다. 액티브 커맨드(ACT)에 응답하여, 메모리 장치(100)의 로우들 중 로우 어드레스(ADDR_R)에 의해 지정된 선택 로우가 활성화된다. 다음에 커맨드/어드레스 디코더(120)는, 리드 커맨드(RD) 및 컬럼 어드레스(ADDR_C)를 컬럼 디코더(113)로 전송하거나, 또는 컬럼 어드레스(ADDR_C) 없이 리드 커맨드(RD)만 단독으로 컬럼 디코더(113)에 전송한다. 구체적으로 제1 동작 모드에서, 커맨드/어드레스 디코더(120)는, 리드 커맨드(RD) 및 컬럼 어드레스(ADDR_C)를 컬럼 디코더(113)로 전송된다. 이 경우 컬럼 디코더(113)는 전송된 컬럼 어드레스(ADDR_C)를 센스 앰프 회로(도 2의 115)로 전송하여, 선택 로우의 데이터들 중 선택 컬럼에 해당하는 데이터가 출력되도록 한다. 제2 동작 모드에서, 커맨드/어드레스 디코더(120)는, 리드 커맨드(RD)만 컬럼 디코더(113)에 전송한다. 이 경우 컬럼 디코더(113)는 센스 앰프 회로(도 2의 115)로부터 선택 로우의 모든 컬럼들의 데이터가 출력되도록 한다. 다음에 커맨드/어드레스 디코더(120)는, 프리차지 커맨드(PRE) 및 로우 어드레스(ADDR_R)를 로우 디코더(112)로 전송한다. 프리차지 커맨드(PRE)에 응답하여, 메모리 장치(100)의 로우 어드레스(ADDR_R)에 의해 지정된 선택 로우가 프라차지된다.
입출력 버퍼부(130)는, 메모리 영역(111)으로부터 전송되는 데이터를 저장하도록 구성된다. 입출력 버퍼부(130)에 저장되는 데이터는, 메모리 장치(100)의 동작 모드에 따라 서로 다른 용량을 갖는다. 구체적으로 제1 동작 모드에서, 입출력 버퍼부(130)는, 로우 어드레스(ADDR_R) 및 컬럼 어드레스(ADDR_C)에 의해 특정되는 선택 로우 및 선택 컬럼의 데이터들을 저장한다. 제1 동작 모드에서, 입출력 버퍼부(130)에 저장되는 데이터의 용량은, 컬럼 어드레스(ADDR_C)에 의해 선택되는 선택 컬럼들의 개수에 대응된다. 반면에 제2 동작 모드에서, 입출력 버퍼부(130)는, 로우 어드레스(ADDR_R)에 의해 특정되는 로우의 모든 컬럼들의 데이터를 저장한다. 즉 제2 동작 모드에서는, 컬럼 어드레스(ADDR_C)에 의해 컬럼이 선택되지 않은 상태에서 로우 어드레스(ADDR_R)에 의해 선택되는 선택 로우의 모든 메모리 셀들이 갖는 데이터들이 입출력 버퍼부(130)에 저장된다. 제2 동작 모드에서, 입출력 버퍼부(130)에 저장되는 데이터의 용량은, 메모리 영역(111)의 하나의 로우를 공유하는 모든 컬럼들의 개수 또는 메모리 셀들의 개수와 동일하다. 이와 같은 데이터 용량의 차이를 조정하기 위해, 입출력 버퍼부(130)에는 모드선택 제어신호(MS)가 입력될 수 있다.
도 3은 도 1의 메모리 장치(100)의 입출력 버퍼부(130) 구성의 일 예를 나타내 보인 도면이다. 도 3을 참조하면, 입출력 버퍼부(130)는, 버퍼 메모리부(131) 및 선택 출력부(132)를 포함할 수 있다. 버퍼 메모리부(141)는, 메모리 영역(111)으로부터 전송되는 데이터들이 저장될 수 있도록 구성된다. 일 예에서 메모리 영역(111)으로부터 버퍼 메모리부(141)로의 데이터 전송은 병렬로 수행될 수 있다. 본 예에서는 매트릭스들(MAT_0, …, MAT_(K-1)) 각각이 동일하게 구성되고, 하나의 로우 어드레스에 의해 선택되는 선택 로우의 컬럼들 수가 동일한 경우를 전제로 한다. 이 경우, 버퍼 메모리부(141)와 메모리 영역(111) 사이의 데이터 전송은, (K*N비트)(여기서 K는 매트릭스들의 개수, N은 매트릭스들 각각의 하나의 로우에 속하는 데이터 비트수)의 대역폭(BW1)을 갖는 제1 내부 데이터 전송 라인(151)을 통해 이루어질 수 있다. 제1 내부 데이터 전송 라인(151)을 통해 입출력 버퍼부(130)로 전송되는 데이터양은, 동작 모드에 따라 다르다. 구체적으로 제1 동작 모드에서, 버퍼 메모리부(141)는, 제1 내부 데이터 전송 라인(151)을 통해 메모리 영역(111)으로부터 K비트의 데이터를 전송받는다. 이 경우 제1 내부 데이터 전송 라인(151)이 갖는 대역폭(BW1)인 (K*N)비트 중 일부, 즉 K비트만이 데이터 전송에 기여한다. 반면에 제2 동작 모드에서, 버퍼 메모리부(141)는, 제1 내부 데이터 전송 라인(151)을 통해 메모리 영역(111)으로부터 (K*N)비트의 데이터를 전송받는다. 이 경우 제1 내부 데이터 전송 라인(151)이 갖는 대역폭(BW1)인 (K*N)비트 모두가 데이터 전송에 기여한다.
일 예에서 버퍼 메모리부(131)는, 복수개, 예컨대 K개의 버퍼 메모리들(BUF_0, …, BUF_(K-1))을 포함한다. 버퍼 메모리들(BUF_0, …, BUF_(K-1))의 개수는, 메모리 영역(111)을 구성하는 매트릭스들(MAT_0, …, MAT_(K-1))의 개수와 동일할 수 있다. 이 경우 일 예에서 버퍼 메모리들(BUF_0, …, BUF_(K-1)) 각각은, 매트릭스들(MAT_0, …, MAT_(K-1)) 각각으로부터 전송되는 데이터를 저장하도록 구성된다. 예컨대 첫번째 버퍼 메모리(BUF_0)는, 첫번째 매트릭스(MAT_0)로부터 전송되는 데이터를 저장하도록 구성된다. 두번째 버퍼 메모리(BUF_1)는, 두번째 매트릭스(MAT_1)로부터 전송되는 데이터를 저장하도록 구성된다. 이와 같은 방식으로 K번째 버퍼 메모리(BUF_(K-1))는 K번째 매트릭스(MAT_(K-1))로부터 전송되는 데이터를 저장하도록 구성된다.
제1 동작 모드에서, 첫번째 버퍼 메모리(BUF_0)는 첫번째 매트릭스(MAT_0)로부터 전송되는 1비트 데이터를 저장한다. 두번째 버퍼 메모리(BUF_1)는 두번째 매트릭스(MAT_1)로부터 전송되는 1비트 데이터를 저장한다. 이와 같은 방식으로 K번째 버퍼 메모리(BUF_(K-1))는 K번째 매트릭스(MAT_(K-1)로부터 전송되는 1비트 데이터를 저장한다. 따라서 제1 동작 모드에서 버퍼 메모리들(BUF_0, …, BUF_(K-1))에는 K비트의 데이터가 저장된다. 제2 동작 모드에서, 첫번째 버퍼 메모리(BUF_0)는, 첫번째 매트릭스(MAT_0)로부터 전송되는 N비트 데이터를 저장한다. 두번째 버퍼 메모리(BUF_1)는, 두번째 매트릭스(MAT_1)로부터 전송되는 N비트 데이터를 저장한다. 이와 같은 방식으로 K번째 버퍼 메모리(BUF_(K-1))는, K번째 매트릭스(MAT_(K-1)로부터 전송되는 N비트 데이터를 저장한다. 따라서 제2 동작 모드에서 버퍼 메모리들(BUF_0, …, BUF_(K-1))에는 (K*N)비트의 데이터가 저장된다. 일 예에서 제2 동작 모드에서, 매트릭스들(MAT_0, …, MAT_(K-1)) 각각으로부터 버퍼 메모리부(131)의 버퍼 메모리들(BUF_0, …, BUF_(K-1)) 각각으로의 데이터 전송은 병렬로 수행될 수 있다.
버퍼 메모리부(131)의 출력 부분의 구성은 입력 부분의 구성과 동일하다. 즉 제1 동작 모드에서, 버퍼 메모리부(131)로부터는 K비트의 데이터가 출력된다. 반면에 제2 동작 모드에서, 버퍼 메모리부(131)로부터는 (K*N)비트의 데이터가 출력된다. 구체적으로 제1 동작 모드에서, 첫번째 버퍼 메모리(BUF_0)는, 첫번째 매트릭스(MAT_0)로부터 전송되어 저장한 1비트 데이터를 출력한다. 두번째 버퍼 메모리(BUF_1)는, 두번째 매트릭스(MAT_1)로부터 전송되어 저장한 1비트 데이터를 출력한다. 이와 같은 방식으로 K번째 버퍼 메모리(BUF_(K-1))는, K번째 매트릭스(MAT_(K-1)로부터 전송되어 저장한 1비트 데이터를 출력한다. 제2 동작 모드에서, 첫번째 버퍼 메모리(BUF_0)는, 첫번째 매트릭스(MAT_0)로부터 전송되어 저장한 N비트 데이터를 출력한다. 두번째 버퍼 메모리(BUF_1)는, 두번째 매트릭스(MAT_1)로부터 전송되어 저장한 N비트 데이터를 출력한다. 이와 같은 방식으로 K번째 버퍼 메모리(BUF_(K-1))는, K번째 매트릭스(MAT_(K-1))로부터 전송되어 저장한 N비트 데이터를 출력한다.
버퍼 메모리부(131)로부터 출력되는 N비트의 데이터 또는 (K*N)비트의 데이터는, 선택출력부(132)의 입력단자들로 입력된다. 구체적으로 선택출력부(132)의 첫번째 입력단자(I_1)에는 첫번째 버퍼 메모리(BUF_0)로부터 출력되는 데이터가 입력된다. 제1 동작 모드에서 첫번째 버퍼 메모리(BUF_0)로부터 1비트의 데이터가 출력되므로, 선택출력부(132)의 첫번째 입력단자(I_1)에는 1비트의 데이터가 입력된다. 반면에 제2 동작 모드에서 첫번째 버퍼 메모리(BUF_0)로부터 N비트의 데이터가 출력되므로, 선택출력부(132)의 첫번째 입력단자(I_1)에는 N비트의 데이터가 입력된다. 일 예에서 제2 동작 모드에서 첫번째 버퍼 메모리(BUF_0)로부터 선택출력부(132)의 첫번째 입력단자(I_1)로의 데이터 전송은 병렬로 수행될 수 있다. 나머지 두번째 내지 K번째 입력단자(I_2, …, I_K)로의 데이터 입력도 동일하게 수행된다.
제1 동작 모드에서, 선택출력부(132)의 제어단자에는 제1 모드선택 제어신호(MS1)가 입력된다. 제2 동작 모드에서, 선택출력부(132)의 제어단자에는 제2 모드선택 제어신호(MS2) 및 컬럼 어드레스(ADDR_C)가 입력된다. 제1 모드선택 제어신호(MS1)는, 선택출력부(132)로 제1 모드선택 제어신호(MS1)가 입력되면, 선택출력부(132)는, K개의 입력단자들(I_1, …, I_K) 각각으로 입력되는 1비트의 데이터를 모두 출력단자(O)를 통해 순차적으로 출력시킨다. 이에 따라 선택출력부(132)의 출력단자(O)를 통해 K비트의 데이터가 순차적으로, 즉 직렬 방식으로 출력된다. 반면에 선택출력부(132)로 제2 모드선택 제어신호(MS2)가 입력되면, 선택출력부(132)는, K개의 입력단자들(I_1, …, I_K) 각각의 섭-입력단자들(1, …, N) 중 컬럼 어드레스(ADDR_C)에 대응되는 섭-입력단자의 데이터를 출력단자(O)를 통해 순차적으로 출력시킨다. 예컨대 첫번째 입력단자(I_1)로 입력되는 첫번째 매트릭스(MAT_0)의 선택 로우의 N비트의 데이터 중 컬럼 어드레스(ADDR_C)에 의해 선택되는 선택 컬럼의 데이터가 출력단자(O)를 통해 출력된다. 다음에 두번째 입력단자(I_2)로 입력되는 두번째 매트릭스(MAT_1)의 선택 로우의 N비트의 데이터 중 컬럼 어드레스(ADDR_C)에 의해 선택되는 선택 컬럼의 데이터가 출력단자(O)를 통해 출력된다. 이와 같이 순차적인 데이터 출력은, K번째 입력단자(I_K)에 입력되는 데이터가 출력될 때까지 동일하게 이루어진다. 제2 동작 모드에서도 선택출력부(132)의 출력단자(O)를 통해 K비트의 데이터가 순차적으로, 즉 직렬 방식으로 출력된다.
다시 도 1을 참조하면, 데이터 입출력부(DQ)(140)는, 외부 버스(160)를 통해 메모리 장치(100)와 외부와의 데이터 입/출력을 수행한다. 데이터 입출력부(140)는, 외부 버스(160)의 데이터 전송 대역폭(BW3)에 대응하는 개수의 데이터 입출력 단자들로 구성될 수 있다. 입출력 버퍼부(130)와 데이터 입출력부(140) 사이에는 제2 내부 데이터 전송 라인(152)이 배치된다. 일 예에서 제2 내부 데이터 전송 라인(152)의 데이터 전송 대역폭(BW2)은, 제1 동작 모드에서 메모리 영역(111)으로부터 입출력 버퍼부(130)로 전송되는 데이터 비트 수와 동일하다. 데이터 입출력부(140)는, 제2 내부 데이터 전송 라인(152)을 통해 입출력 버퍼부(130)로부터 데이터를 전송받는다. 데이터 입출력부(140)는 입출력 버퍼부(130)로부터 전송되는 데이터를 외부 버스(160)를 통해 메모리 장치(100) 외부, 예컨대 메모리 컨트롤러 등으로 출력시킨다. 외부 버스(160)의 데이터 전송 대역폭(BW3)은, 메모리 영역(111)과 입출력 버퍼부(130) 사이의 제1 내부 데이터 전송 라인(151)이 갖는 대역폭(BW1)보다 작다. 일 예에서 외부 버스(160)의 데이터 전송 대역폭(BW3)은, 제1 동작 모드에서 제1 내부 데이터 전송 라인(151)이 사용된느 대역폭(BW1)과 동일하다. 일 예에서 외부 버스(160)의 데이터 전송 대역폭(BW3)은, 제2 내부 데이터 전송 라인(152)이 갖는 대역폭(BW2)과 동일하다.
도 4 내지 도 10은 본 개시의 일 예에 따른 메모리 장치(100)의 동작 모드에 따른 동작을 설명하기 위해 나타내 보인 도면들이다. 구체적으로 도 4는 메모리 장치(100)를 구성하는 메모리 영역(111)이 128개의 매트릭스들로 구성되고, 각각의 매트릭스가 8개의 로우들 및 8개의 컬럼들을 갖는 경우를 나타내 보인 도면이다. 도 5는 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제1 동작 모드에서의 동작을 설명하기 위해 나타내 보인 도면이다. 도 6은 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제1 동작 모드에서 메모리영역(111)으로부터 출력되는 데이터 용량을 설명하기 위해 나타내 보인 도면이다. 도 7은 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제1 동작 모드에서 입출력 버퍼부(130)로의 데이터 입력 및 출력 용량을 설명하기 위해 나타내 보인 도면이다. 도 8은 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제2 동작 모드에서의 동작을 설명하기 위해 나타내 보인 도면이다. 도 9는 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제2 동작 모드에서 메모리영역(111)으로부터 출력되는 데이터 용량을 설명하기 위해 나타내 보인 도면이다. 그리고 도 10은 도 4에 나타낸 메모리 영역(111)을 갖는 메모리 장치(100)의 제2 동작 모드에서 입출력 버퍼부(130)로의 데이터 입력 및 출력 용량을 설명하기 위해 나타내 보인 도면이다.
본 개시의 일 예에 따른 메모리 장치(100)의 제1 동작 모드에서의 동작 및 제2 동작 모드에서의 동작을 설명하기 위해, 하나의 매트릭스가 8개의 로우들 및 8개의 컬럼들을 포함하고, 이와 같은 매트릭스가 메모리 영역(111) 내에 128개가 배치되는 구조를 전제로 한다. 구체적으로 도 4에 나타낸 바와 같이, 메모리 영역(111)은 128개의 매트릭스들(MAT_0, …, MAT_127)을 포함하여 구성된다. 매트릭스들(MAT_0, …, MAT_127) 각각은, 8개의 로우들 및 컬럼들을 갖는다. 각각의 로우는 로우 어드레스(R0, …, R7)에 의해 선택되고, 각각의 컬럼은 컬럼 어드레스(C0, …, C7)에 의해 선택된다. 매트릭스들(MAT_0, …, MAT_127) 각각의 로우들은 로우 어드레스를 공유한다. 매트릭스들(MAT_0, …, MAT_127) 각각은, 8비트의 데이터 전송 대역폭을 갖는 섭(sub)-데이터 전송 라인과 연결된다. 예컨대 첫번째 매트리스(MAT_0)는 8비트 데이터 전송 대역폭의 첫번째 제1 섭-데이터 전송 라인(151-1)과 연결된다. 두번째 매트릭스(MAT_1)는 8비트 데이터 전송 대역폭의 두번째 제1 섭-데이터 전송 라인(151-2)과 연결된다. 마찬가지로 128번째 매트릭스(MAT_127) 또한 8비트 데이터 전송 대역폭의 128번째 제1 섭-데이터 전송 라인(151-128)과 연결된다. 첫번째 내지 128번째 제1 섭-데이터 전송 라인(151-1, …, 151-128)은, 메모리 영역(111) 및 입출력 버퍼부(도 1의 130) 사이의 제1 데이터 전송 라인(151)을 구성한다. 제1 데이터 전송 라인(151)은 1024비트의 데이터 전송 대역폭(BW2)을 갖는다.
도 1 내지 도 3을 참조하여 설명한 바와 같이, 제1 동작 모드에서, 매트릭스들(MAT_0, …, MAT_127) 각각으로부터 선택 로우 및 선택 컬럼에 의해 선택되는 1비트 데이터가 출력된다. 메모리 영역(111)이 1비트 데이터를 출력하는 128개의 매트릭스들(MAT_0, …, MAT_127)로 구성됨에 따라, 제1 동작 모드에서 메모리 영역(111)으로부터 전송되는 데이터는 모두 128비트 데이터가 된다. 반면에 제2 동작 모드에서, 매트릭스들(MAT_0, …, MAT_127) 각각으로부터는 선택 로우에 의해 선택되는 8비트 데이터가 출력된다. 메모리 영역(111)이 8비트 데이터를 출력하는 128개의 매트릭스들(MAT_0, …, MAT_127)로 구성됨에 따라, 제2 동작 모드에서 메모리 영역(111)으로부터 전송되는 데이터는 모두 1024비트 데이터가 된다.
도 5를 참조하면, 메모리 장치(100)의 외부로부터 로우 어드레스 "R1" 및 컬럼 어드레스 "C2"의 데이터를 리드할 것을 지시하는 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)가 전송되는 것을 전제한다. 또한 외부 커맨드(EXT_CMD)에는 제1 동작 모드로 리드 동작을 수행하는 정보가 포함된 것으로 전제한다. 이 경우 커맨드/어드레스 디코더(120)는, 액티브 커맨드(ACT)와 로우 어드레스 "R1"을 로두 디코더(112)에 전송한다. 메모리 영역(111)의 매트릭스들(MAT_0, …, MAT_127) 각각은, 액티브 커맨드(ACT) 및 로우 어드레스 "R1"에 응답하여, 로우 어드레스 "R1"에 의해 지정되는 선택 로우를 활성화한다. 일 예에서 선택 로우의 활성화는, 도 2를 참조하여 설명한 바와 같이, 선택 로우의 데이터를 센스 앰프 회로(도 2의 115)로 전송하는 동작을 포함할 수 있다. 일정 클럭이 경과한 후에, 커맨드/어드레스 디코더(120)는, 리드 커맨드(RD) 및 컬럼 어드레스 "C2"를 컬럼 디코더(113)에 전송한다. 메모리 영역(111), 특히 센스 앰프 회로(도 2의 115)는, 컬럼 어드레스 "C2"에 의해 선택된 컬럼의 데이터를 선택적으로 제1 내부 데이터 전송 라인(151)을 통해 출력시킨다.
도 6을 참조하여 보다 상세하게 설명하면, 첫번째 매트릭스(MAT_0)의 경우, 액티브 커맨드(ACT) 및 로우 어드레스 "R1"에 의해 두번째 로우(도면에서 점선으로 표시)가 활성화된다. 이에 따라 로우 어드레스 "R1"를 갖는 두번째 로우의 8개의 메모리 셀들이 갖는 데이터, 즉 8비트 데이터가 센스 앰프 회로(도 2의 115)로 전송된다. 첫번째 매트릭스(MAT_0)에서 센스 앰프 회로(도 2의 115)로 전송된 8비트 데이터 중, 컬럼 어드레스 "C2"에 의해 지정되는 컬럼의 타겟 메모리 셀이 갖는 1비트 데이터가 첫번째 매트릭스(MAT_0)로부터 출력된다. 이와 같은 동작은, 나머지 매트릭스들(MAT_1, …, MAT_127) 각각에 대해서도 동일하게 이루어진다. 따라서 메모리 영역(110)을 구성하는 128개의 매트릭스들(MAT_0, …, MAT_127)이 각각이 1비트 데이터를 출력하므로, 메모리 영역(111)으로부터 모두 128비트 데이터가 출력된다. 이 128비트 데이터는 1024비트의 데이터 전송 대역폭(BW1)을 갖는 제1 내부 데이터 전송 라인(151)을 통해 입출력 버퍼부(130)로 전송된다.
다시 도 5를 참조하면, 메모리 영역(111)으로부터 128비트의 데이터를 전송받은 입출력 버퍼부(130)는, 제1 동작 모드에 대응하는 제1 모드선택 제어신호(MS1)의 입력에 응답하여, 입력된 128비트의 데이터를 그대로 출력시킨다. 이 과정을 도 7을 참조하여 보다 상세하게 설명하면, 메모리 영역(111)의 첫번째 매트릭스(MAT_0)로부터 출력되는 1비트 데이터는 버퍼 메모리부(131)의 첫번째 버퍼 메모리(BUF_0)에 저장된다. 메모리 영역(111)의 두번째 매트릭스(MAT_1)로부터 출력되는 1비트 데이터는 버퍼 메모리부(131)의 두번째 버퍼 메모리(BUF_1)에 저장된다. 동일한 방식으로 세번째 내지 128번째 매트릭스(MAT_2, …, MAT_127)로부터 출력되는 1비트 데이터는, 각각 버퍼 메모리부(131)의 세번째 내지 128번째 버퍼 메모리(BUF_2, …, BUF_127)에 저장된다.
버퍼 메모리부(131)의 첫번째 버퍼 메모리(BUF_1)에 저장된 1비트 데이터는 선택 출력부(132)의 첫번째 입력단자(I_1)로 전송된다. 특히 첫번째 입력단자(I_1)를 구성하는 8개의 섭-입력단자들(1, …, 8) 중 컬럼 어드레스 "C2"에 대응되는 세번째 섭-입력단자(3)로 전송된다. 이와 같은 데이터 전송은, 버퍼 메모리부(131)를 구성하는 나머지 버퍼 메모리들(BUF_2, …, BUF_127)과 선택 출력부(132) 사이에서도 동일하게 이루어진다. 도면에 나타내지는 않았지만, 버퍼 메모리부(131)로부터의 데이터 출력은, 별도의 제어 신호에 응답하여 수행될 수 있다. 선택 출력부(132)는, 제1 모드선택 제어신호(MS1)에 응답하여, 입력단자들(I_1, …, I_128) 각각으로 전송된 데이터를 출력단자(O)를 통해 순차적으로 출력한다. 이에 따라 선택 출력부(132)의 출력단자(O)를 통해 128비트의 데이터가 순차적으로 출력된다. 입출력 버퍼부(130)로부터 순차적으로 출력되는 128비트 데이터는, 제2 내부 데이터 전송 라인(152)을 통해 데이터 입출력부(DQ)(140)로 전송된다. 도면에 나타내지는 않았지만, 입출력 버퍼부(130)로부터 직렬 방식으로 출력되는 128비트 데이터는 병렬 데이터로 변환된 후에 데이터 입출력부(DQ)(140)로 전송된다. 이를 위해 입출력 버퍼부(130)는 직렬 데이터를 병렬 데이터로 변환시키는 직/병렬기를 포함할 수 있다.
다시 도 5를 참조하면, 데이터 입출력부(DQ)(140)는, 입출력 버퍼부(130)로부터 전송되는 128비트 데이터를 외부 버스(160)를 통해 전송한다. 외부 버스(160)는, 128비트의 데이터 전송 대역폭(BW3)을 갖는다. 일 예에서 입출력 버퍼부(130)는, 8개(x8)의 입출력 단자들을 포함할 수 있다. 이 경우, 128비트의 데이터 전송 대역폭(BW3)을 갖기 위해, 각각의 입출력 단자를 통해 1비트의 데이터가 출력되며, 16의 버스트 랭스(Burst Length; BL)를 가질 수 있다. 버스트 랭스(BL)는, 커맨드 하나에 순차적으로 읽어야 하는 데이터 개수를 의미한다. 이에 따라 8개의 입출력 단자들 각각은, 한 번에 1비트씩 모두 16번에 걸쳐서 데이터를 출력시키고, 결과적으로 데이터 입출력부(DQ)(140)로부터 외부 버스(160)를 통해 128비트의 데이터가 출력될 수 있다.
도 8을 참조하면, 메모리 장치(100)의 외부로부터 로우 어드레스 "R1" 및 컬럼 어드레스 "C2"의 데이터를 리드할 것을 지시하는 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)가 전송되는 것을 전제한다. 본 예의 경우 외부 커맨드(EXT_CMD)에는 제2 동작 모드로 리드 동작을 수행하는 정보가 포함된 것으로 전제한다. 이 경우 커맨드/어드레스 디코더(120)는, 액티브 커맨드(ACT)와 로우 어드레스 "R1"을 로두 디코더(112)에 전송한다. 메모리 영역(111)의 매트릭스들(MAT_0, …, MAT_127) 각각은, 액티브 커맨드(ACT) 및 로우 어드레스 "R1"에 응답하여, 로우 어드레스 "R1"에 의해 지정되는 선택 로우를 활성화한다. 일 예에서 선택 로우의 활성화는, 도 2를 참조하여 설명한 바와 같이, 선택 로우의 데이터를 센스 앰프 회로(도 2의 115)로 전송하는 동작을 포함할 수 있다. 일정 클럭이 경과한 후에, 커맨드/어드레스 디코더(120)는, 리드 커맨드(RD)를 컬럼 디코더(113)에 전송한다. 컬럼 디코더(113)로 전송된 리드 커맨드(RD)에 응답하여, 메모리 영역(111), 특히 센스 앰프 회로(도 2의 115)는, 선택 로우의 모든 데이터, 즉 1024비트의 데이터를 제1 내부 데이터 전송 라인(151)을 통해 출력시킨다.
도 9를 참조하여 보다 상세하게 설명하면, 첫번째 매트릭스(MAT_0)의 경우, 액티브 커맨드(ACT) 및 로우 어드레스 "R1"에 의해 두번째 로우(도면에서 점선으로 표시)가 활성화된다. 두번째 로우의 모든 메모리 셀들은 타겟 메모리 셀들에 해당된다. 로우 어드레스 "R1"를 갖는 두번째 로우의 8개의 타겟 메모리 셀들이 갖는 데이터, 즉 8비트 데이터는 센스 앰프 회로(도 2의 115)로 전송된다. 첫번째 매트릭스(MAT_0)에서 센스 앰프 회로(도 2의 115)로 전송된 8비트 데이터는 모두 첫번째 매트릭스(MAT_0)로부터 출력된다. 즉 컬럼 어드레스에 의해 특정 컬럼을 선택하는 동작이 수행되지 않는다. 이와 같은 동작은, 나머지 매트릭스들(MAT_1, …, MAT_127) 각각에 대해서도 동일하게 이루어진다. 따라서 메모리 영역(110)을 구성하는 128개의 매트릭스들(MAT_0, …, MAT_127)이 각각이 8비트 데이터를 출력하므로, 메모리 영역(111)으로부터 모두 1024비트 데이터가 출력된다. 이 1024비트 데이터는 1024비트의 데이터 전송 대역폭(BW1)을 갖는 제1 내부 데이터 전송 라인(151)을 통해 입출력 버퍼부(130)로 전송된다.
다시 도 8을 참조하면, 메모리 영역(111)으로부터 1024비트의 데이터를 전송받은 입출력 버퍼부(130)는, 제2 동작모드에 대응하는 제2 모드선택 제어신호(MS2)와, 리드 커맨드(RD)와, 컬럼 어드레스(ADDR_C)의 입력에 응답하여, 입력된 1024비트의 데이터 중 128비트 데이터를 선택적으로 출력시킨다. 이 과정을 도 10을 참조하여 보다 상세하게 설명하면, 메모리 영역(111)의 첫번째 매트릭스(MAT_0)로부터 출력되는 8비트 데이터는 버퍼 메모리부(131)의 첫번째 버퍼 메모리(BUF_0)에 저장된다. 메모리 영역(111)의 두번째 매트릭스(MAT_1)로부터 출력되는 8비트 데이터는 버퍼 메모리부(131)의 두번째 버퍼 메모리(BUF_1)에 저장된다. 동일한 방식으로 세번째 내지 128번째 매트릭스(MAT_2, …, MAT_127)로부터 출력되는 8비트 데이터는, 각각 버퍼 메모리부(131)의 세번째 내지 128번째 버퍼 메모리(BUF_2, …, BUF_127)에 저장된다.
버퍼 메모리부(131)의 첫번째 버퍼 메모리(BUF_1)에 저장된 8비트 데이터는 선택 출력부(132)의 첫번째 입력단자(I_1)로 전송된다. 첫번째 입력단자(I_1)로 전송되는 8비트 데이터의 각각의 비트는, 첫번째 입력단자(I_1)를 구성하는 8개의 섭-입력단자들(1, …, 8) 각각으로 전송된다. 이와 같은 데이터 전송은, 버퍼 메모리부(131)를 구성하는 나머지 버퍼 메모리들(BUF_2, …, BUF_127)과 선택 출력부(132) 사이에서도 동일하게 이루어진다. 도면에 나타내지는 않았지만, 버퍼 메모리부(131)로부터의 데이터 출력은, 별도의 제어 신호에 응답하여 수행될 수 있다. 선택 출력부(132)는, 제1 모드선택 제어신호(MS1)에 응답하여, 입력단자들(I_1, …, I_128) 각각으로 전송된 데이터 중 컬럼 어드레스(ADDR_C)에 의해 지정되는 섭-입력단자로 전송된 데이터를 선택하여 출력단자(O)를 통해 순차적으로 출력한다. 예컨대 먼저 첫번째 입력단자(I_1)의 섭-입력단자들(1, …, 8) 중 컬럼 어드레스(ADDR_C) "C2"에 대응하는 세번째 섭-입력단자(3)로 전송되는 1비트 데이터를 출력시킨다. 다음에 두번째 입력단자(I_2)의 섭-입력단자들(1, …, 8) 중 컬럼 어드레스(ADDR_C) "C2"에 대응하는 세번째 섭-입력단자(3)로 전송되는 1비트 데이터를 출력시킨다. 동일한 방식의 데이터 출력은, 128번째 입력단자(I_128)의 세번째 섭-입력단자(3)로 전송되는 1비트 데이터가 출력될 때까지 반복적으로 수행된다. 최종적으로 선택 출력부(132)의 출력단자(O)를 통해 1비트 데이터 단위로 순차적인 데이터 출력이 이루어지며, 최종적으로 모두 128비트의 데이터가 출력된다. 입출력 버퍼부(130)로부터 순차적으로 출력되는 128비트 데이터는, 제2 내부 데이터 전송 라인(152)을 통해 데이터 입출력부(DQ)(140)로 전송된다. 도면에 나타내지는 않았지만, 입출력 버퍼부(130)로부터 직렬 방식으로 출력되는 128비트 데이터는 병렬 데이터로 변환된 후에 데이터 입출력부(DQ)(140)로 전송된다. 이를 위해 입출력 버퍼부(130)는 직렬 데이터를 병렬 데이터로 변환시키는 직/병렬기를 포함할 수 있다.
다시 도 8을 참조하면, 데이터 입출력부(DQ)(140)는, 입출력 버퍼부(130)로부터 전송되는 128비트 데이터를 외부 버스(160)를 통해 전송한다. 외부 버스(160)는, 128비트의 데이터 전송 대역폭(BW3)을 갖는다. 일 예에서 입출력 버퍼부(130)는, 8개(x8)의 입출력 단자들을 포함할 수 있다. 이 경우, 128비트의 데이터 전송 대역폭(BW3)을 갖기 위해, 각각의 입출력 단자를 통해 1비트의 데이터가 출력되며, 16의 버스트 랭스(Burst Length; BL)를 가질 수 있다. 이에 따라 8개의 입출력 단자들 각각은, 한 번에 1비트씩 모두 16번에 걸쳐서 데이터를 출력시키고, 결과적으로 데이터 입출력부(DQ)(140)로부터 외부 버스(160)를 통해 128비트의 데이터가 출력될 수 있다.
도 11은 본 개시의 다른 예에 따른 메모리 장치(200)를 나타내 보인 블록도이다. 그리고 도 12는 도 11의 메모리 장치(200)의 입출력 버퍼부(230) 구성의 일 예를 나타내 보인 도면이다. 먼저 도 11을 참조하면, 메모리 장치(200)는, 복수개, 예컨대 L개의 뱅크들(BANK_0, …, BANK_(L-1))(211_0, …, 211_(L-1))과, L개의 로우 디코더들(212_0, …, 212_(L-1))과, L개의 컬럼 디코더들(213_0, …, 213_(L-1))과, 커맨드/어드레스 디코더(220)와, 입출력 버퍼부(230)와, 그리고 데이터 입출력부(240)를 포함하여 구성될 수 있다. 일 예에서 뱅크들(211_0, …, 211_(L-1)) 각각은, 도 1을 참조하여 설명한 메모리 영역(111)과 동일하게 구성될 수 있다. 이에 따라 뱅크들(211_0, …, 211_(L-1)) 각각은, 복수개의 매트릭스들을 포함할 수 있다. 뱅크들(211_0, …, 211_(L-1)) 각각을 구성하는 매트릭스들 각각은, 도 2를 참조하여 설명한 바와 동일할 수 있다.
로우 디코더들(212_0, …, 212_(L-1)) 각각은, 뱅크들(211_0, …, 211_(L-1)) 각각에 할당되어 배치된다. 유사하게 컬럼 디코더들(213_0, …, 213_(L-1)) 각각도, 뱅크들(211_0, …, 211_(L-1)) 각각에 할당되어 배치된다. 비록 도면에 나타내지는 않았지만, 뱅크들(211_0, …, 211_(L-1)) 각각이 도 1을 참조하여 설명한 메모리 장치(100)와 같이 복수의 매트릭스들로 구성되는 경우, 컬럼 디코더들(213_0, …, 213_(L-1)) 각각은, 복수의 매트릭스들 각각에 할당되는 복수의 섭-컬럼 디코더들을 포함할 수 있다. 로우 디코더들(212_0, …, 212_(L-1)) 각각은, 액티브 커맨드 및 로우 어드레스(ADDR_R)를 커맨드/어드레스 디코더(220)로부터 전송받을 수 있다. 본 예에서 액티브 커맨드 및 로우 어드레스(ADDR_R)는 모든 뱅크들(211_0, …, 211_(L-1))로 실질적으로 동일한 시점에 전송된다. 로우 디코더들(212_0, …, 212_(L-1))은, 공통으로 전송되는 액티브 커맨드에 응답하여, 로우 어드레스(ADDR_R)에 의해 선택되는 선택 로우를 활성화시킨다.
컬럼 디코더들(213_0, …, 213_(L-1)) 각각은, 커맨드/어드레스 디코더(220)로부터 리드 커맨드 및 컬럼 어드레스(ADDR_C)를 입력받는다. 컬럼 디코더들(213_0, …, 213_(L-1)) 각각은, 리드 커맨드에 응답하여 복수의 뱅크들(211_0, …, 211_(L-1))의 선택 로우의 컬럼들 중 컬럼 어드레스(ADDR_C)에 의해 선택되는 선택 컬럼의 데이터를 출력시킨다. 일 예에서 복수의 뱅크들(211_0, …, 211_(L-1)) 각각이 128개의 매트릭스들로 구성되는 경우, 복수의 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 128비트의 데이터가 출력될 수 있다. 본 예에서 설명의 편의를 위해, 뱅크를 선택하기 위한 뱅크 어드레스와 컬럼을 선택하기 위한 컬럼 어드레스를 구분하였다. 그러나 다른 예에서 컬럼 어드레스(ADDR_C)에 뱅크 어드레스(ADDR_B)가 포함될 수도 있다.
커맨드/어드레스 디코더(220)는, 외부, 예컨대 메모리 컨트롤러로부터 전송되는 외부 커맨드(EXT_CMD)을 디코딩하여 커맨드(CMD)를 출력시킨다. 또한 커맨드/어드레스 디코더(220)는, 외부로부터 전송되는 외부 어드레스(EXT_ADDR)를 디코딩하여 로우 어드레스(ADDR_R), 뱅크 어드레스(ADDR_B), 및 컬럼 어드레스(ADDR_C)를 출력시킨다. 일 예에서 커맨드/어드레스 디코더(220)로부터 발생되는 커맨드(CMD) 중 액티브 커맨드(ACT) 및 로우 어드레스(ADDR_R)는, 모든 로우 디코더들(210_0, …, 210_(L-1))에 공통으로 전송된다. 이에 따라 하나의 액티브 커맨드(ACT) 및 로우 어드레스(ADDR_R) 전송을 통해, 로우 어드레스(ADDR_R)에 의해 선택되는 로우가 모든 뱅크들(211_0, …, 211_(L-1))에 대해 활성화된다.
커맨드/어드레스 디코더(220)로부터 발생되는 커맨드(CMD) 중 리드 커맨드(RD)는, 모든 컬럼 디코더들(213_0, …, 213_(L-1))에 공통으로 전송된다. 이에 따라 뱅크들(211_0, …, 211_(L-1)) 각각에서 선택 로우들의 모든 컬럼들의 데이터가 글로벌 데이터 전송 라인(250)으로 전송된다. 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 글로벌 데이터 전송 라인(250)으로의 데이터 전송은, 제1 데이터 전송 대역폭(BW1)에 해당하는 비트수 단위로 이루어진다. 일 예에서 제1 데이터 전송 대역폭(BW1)은, 메모리 장치(200)의 외부와의 데이터 전송에 사용되는 대역폭과 동일할 수 있다. 이와 같은 제1 데이터 전송 대역폭(BW1)은, 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 출력되는 데이터 비트수와 동일할 수 있다.
글로벌 데이터 전송 라인(250)으로 전송된 데이터는 제1 내부 데이터 전송 라인(251)을 통해 글로벌 데이터 전송 라인(250)으로부터 입출력 버퍼부(230)로 전송된다. 제1 내부 데이터 전송 라인(251)은 제1 데이터 전송 대역폭(BW1)보다 큰 제2 데이터 전송 대역폭(BW2)을 갖는다. 일 예에서 제2 데이터 전송 대역폭(BW2)은, 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 출력되는 데이터 비트수, 즉 제1 데이터 전송 대역폭(BW1)과 뱅크들(211_0, …, 211_(L-1))의 개수(L)를 곱한 비트 수(BW1*L)로 정의될 수 있다.
입출력 버퍼부(230)는, 뱅크들(211_0, …, 211_(L-1))로부터 글로벌 데이터 전송 라인(250) 및 제1 내부 데이터 전송 라인(251)을 통해 전송되는 데이터를 저장한다. 입출력 버퍼부(230)는, 도 12에 나타낸 바와 같이, 버퍼 메모리부(231) 및 선택 출력기(232)를 포함하여 구성될 수 있다. 버퍼 메모리부(241)에는, 뱅크들(211_0, …, 211_(L-1))로부터 전송되는 데이터들이 저장될 수 있다. 일 예에서 뱅크들(211_0, …, 211_(L-1))로부터 버퍼 메모리부(241)로의 데이터 전송은 병렬로 수행될 수 있다. 일 예에서 버퍼 메모리부(231)는, 복수개의 버퍼 메모리들(BUF_0, …, BUF_(L-1))을 포함한다. 버퍼 메모리들(BUF_0, …, BUF_(L-1))의 개수는, 뱅크들(211_0, …, 211_(L-1))의 개수와 동일할 수 있다. 이 경우 일 예에서 버퍼 메모리들(BUF_0, …, BUF_(L-1)) 각각은, 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 전송되는 데이터를 저장할 수 있다. 예컨대 첫번째 버퍼 메모리(BUF_0)는 첫번째 뱅크(211_0)로부터 전송되는 K비트의 데이터를 저장할 수 있다. 두번째 버퍼 메모리(BUF_1)는 두번째 뱅크(211_1)로부터 전송되는 K비트의 데이터를 저장할 수 있다. 이와 같은 방식으로 L번째 버퍼 메모리(BUF_(L-1))는 L번째 뱅크(211_(L-1)로부터 전송되는 K비트의 데이터를 저장할 수 있다. 따라서 버퍼 메모리부(231)는 (K*L) 비트의 데이터가 저장된 후 출력된다.
버퍼 메모리부(231)로부터 출력되는 (K*L)비트의 데이터는 선택출력부(232)의 입력단자들로 입력된다. 일 예에서 선택출력부(232)는, L개의 입력단자들(I_1, …, I_L)과 출력단자(O)를 갖는 멀티플렉서로 구현될 수 있다. L개의 입력단자들(I_1, …, I_L) 각각은, K개의 섭-입력단자들(1, …, K)을 갖는다. 선택출력부(232)의 L개의 입력단자들(I_1, …, I_L) 각각은, L개의 버퍼 메모리들(BUF_0, …, BUF_(L-1)) 각각에 저장되어 있는 데이터를 입력받는다. 예컨대 선택출력부(232)의 첫번째 입력단자(I_1)에는 첫번째 버퍼 메모리(BUF_0)에 저장되어 있던 데이터, 즉 제1 뱅크(BANK_0)로부터 전송되어 저장된 K비트의 데이터가 입력된다. 일 예에서 첫번째 버퍼 메모리(BUF_0)로부터 선택출력부(232)의 첫번째 입력단자(I_1)로의 데이터 전송은 병렬로 수행될 수 있다. 나머지 두번째 내지 L번째 입력단자(I_2, …, I_L)로의 데이터 입력도 동일하게 수행된다.
선택출력부(232)는, 제어단자로 입력되는 리드 커맨드(RD)에 응답하여 뱅크 어드레스(ADDR_B)에 의해 선택되는 선택 뱅크의 데이터를 출력단자(O)를 통해 순차적으로 출력시킨다. 이에 따라 선택출력부(232)의 출력단자(O)를 통해 선택 뱅크의 K비트의 데이터가 출력된다. 선택 출력부(232)로부터 출력되는 K비트의 데이터는 데이터 입출력부(240)로 전송된다. 선택 출력부(232)의 출력단자(O)로부터의 데이터 출력은 직렬 방식으로 수행된다. 이에 따라 선택 출력부(232)의 출력단자(O)로부터 출력되는 데이터는 직/병렬화기를 통해 병렬 모드로 변경된 후에 데이터 입출력부(240)로 출력될 수 있다. 이 경우 입출력 버퍼부(230)로부터 데이터 입출력부(240)로의 데이터 전송은, 제1 대역 폭(BW1)과 동일한 대역 폭으로 수행될 수 있다. 다른 예에서 선택 출력부(232)의 출력단자(O)로부터 출력되는 데이터는, 데이터 입출력부(240)까지 직렬 모드로 전송된 후에, 직/병렬화기를 통해 병렬 모드로 변경된 후에 데이터 입출력부(240)로부터 출력될 수 있다.
다시 도 11을 참조하면, 데이터 입출력부(DQ)(240)는, 외부 버스(260)를 통해 메모리 장치(200)의 외부와의 데이터 입/출력을 수행한다. 데이터 입출력부(240)는, 복수개의 데이터 입출력 단자들로 구성될 수 있다. 데이터 입출력부(240)는, 입출력 버퍼부(230)로부터 전송되는 데이터를 외부 버스(260)를 통해 메모리 장치(100) 외부, 예컨대 메모리 컨트롤러 등으로 출력시킨다. 일 예에서 외부 버스(260)의 데이터 전송 대역폭(BW3)은, 뱅크들(211_0, …, 211_(L-1)) 각각으로부터 출력되는 데이터 비트 수, 즉 제1 대역 폭(BW1)과 동일할 수 있다.
도 13은, 도 11에 나타낸 뱅크들(211_0, …, 211_(L-1))을 갖는 메모리 장치(200)의 동작을 설명하기 위해 나타내 보인 도면이다. 그리고 도 14는 도 11에 나타낸 뱅크들(211_0, …, 211_(L-1))을 갖는 메모리 장치(200)의 동작 타이밍도이다. 도 13 및 도 14를 참조하면, 메모리 장치(200)를 구성하는 뱅크들(211_0, …, 211_7)의 개수는 8개인 경우를 전제로 한다. 또한, 도 4를 참조하여 설명한 바와 같이, 뱅크들(211_0, …, 211_7) 각각은 128개의 매트릭스들로 구성되며, 그리고 매트릭스들 각각은, 8개의 컬럼들을 갖는 경우를 전제로 한다. 먼저 외부로부터의 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)를 전송받은 커맨드/어드레스 디코더(220)는, 액티브 커맨드(ACT) 및 로우 어드레스(ADDR_R)를 복수개의 로우 디코더들(212_0, …, 212_7)로 전송시킨다. 이에 따라 로우 어드레스(ADDR_R)에 의해 선택된 선택 로우의 워드라인은 로우 레벨에서 하이 레벨로 변경된다.
일정 시점 후에 리드 커맨드(RD) 및 컬럼 어드레스(ADDR_C)를 복수개의 컬럼 디코더들(213_0, …, 213_7)로 전송시킨다. 이에 따라 뱅크들(211_0, …, 211_7) 각각으로부터 로우 어드레스(ADDR_R) 및 컬럼 어드레스(ADDR_C)에 의한 선택 로우 및 선택 컬럼들의 데이터가 출력된다. 뱅크들(211_0, …, 211_7) 각각을 구성하는 매트릭스의 개수가 128이므로, 뱅크들(211_0, …, 211_7) 각각으로부터 128비트의 데이터가 출력된다. 본 예에 따른 메모리 장치(200)에 있어서, 도 14에 나타낸 바와 같이, 리드 커맨드(RD) 및 컬럼 어드레스(ADDR_C)에 응답하여 뱅크들(211_0, …, 211_7) 각각으로부터 출력되는 128비트 데이터는, 글로벌 데이터 전송 라인(GIO)(250)을 통해 입출력 버퍼부(230)로 전송된다. 본 예에서 뱅크들(211_0, …, 211_7) 각각으로부터 128비트의 데이터가 전송되고, 뱅크들(211_0, …, 211_7)의 개수가 8개이므로, 글로벌 데이터 전송 라인(250)을 통해 입출력 버퍼부(230)로 1024비트의 데이터가 전송된다. 이 1024비트의 데이터는, 1024비트의 제2 데이터 전송 대역폭(BW2)을 갖는 제1 내부 데이터 전송 라인(251)을 통해 전송된다.
입출력 버퍼부(230)는 입력되는 뱅크 어드레스(ADDR_B)에 의해 선택된 뱅크의 데이터를 데이터 입출력부(240)로 전송한다. 데이터 입출력부(240)는, 입출력 버퍼부(230)로부터 전송되는 128비트 데이터를 128비트의 제1 데이터 전송 대역폭(BW1)과 동일한 대역폭(BW3)의 외부 버스(260)을 통해 출력시킨다. 일 예에서 데이터 입출력부(240)는, 8개(x8)의 입출력 단자들을 포함할 수 있다. 이 경우, 외부버스(260)의 대역폭(BW3)이 128비트의 제1 데이터 전송 대역폭(BW1)을 갖기 위해, 각각의 입출력 단자를 통해 1비트의 데이터가 출력되며, 16의 버스트 랭스(Burst Length; BL)를 가질 수 있다. 이에 따라 8개의 입출력 단자들 각각은, 한 번에 1비트씩 모두 16번에 걸쳐서 데이터를 출력시키고, 결과적으로 데이터 입출력부(DQ)(240)로부터 외부 데이터 전송 라인(260)을 128비트의 데이터가 출력될 수 있다. 도 14에 나타낸 바와 같이, 입출력 버퍼부(230)에 래치(latch)되어 있던 데이터들이 뱅크들(211_0, …, 211_7)에 대해 순차적으로 출력되는 경우, 뱅크들(211_0, …, 211_7) 사이의 지연 시간 없이 데이터 입출력부(250)를 통해 데이터 출력이 이루어질 수 있다.
도 15는 본 개시의 다른 예에 따른 메모리 장치(300)를 나타내 보인 블록도이다. 그리고 도 16은 도 15의 메모리 장치(300)의 일 예를 나타내 보인 도면이다. 도 15에서 도 11과 동일한 참조부호는 동일한 구성요소를 나타내며, 따라서 이하에서 중복되는 설명은 생략하기로 한다. 먼저 도 15를 참조하면, 본 예에 따른 메모리 장치(300)는, 복수개, 예컨대 L개의 메모리 채널들(CH_0, …, CH_(L-1))(311_0, …, 311_(L-1))을 포함한다는 점에서, 뱅크들로 구성되는 메모리 장치(도 11의 200)와 다르다. 메모리 채널들(CH_0, …, CH_(L-1))(311_0, …, 311_(L-1))의 데이터 리드 동작은, 뱅크 대신 채널 단위로 데이터가 출력되는 점과, 뱅크 어드레스 대신 채널 어드레스(ADDR_CH)가 사용된다는 점을 제외하고는, 도 11의 메모리 장치(200)를 구성하는 뱅크들(211_0, …, 211_(L-1))의 데이터 리드 동작과 실질적으로 동일하다.
일 예에서 메모리 채널들(CH_0, …, CH_(L-1))(311_0, …, 311_(L-1))은, 도 16에 나타낸 바와 같이, HBM(High Bandwidth Memory) 패키지(400)를 구성하는 메모리 칩들(431-434)에 의해 구현될 수 있다. HBM 패키지(400)는, 기판(410)과, 그 위에 배치되는 인터포즈(420)를 포함할 수 있다. 메모리 칩들(431-434)은, 인터포즈(420)의 일 영역 위에서 순차적으로 적층될 수 있다. 인터포즈(420)의 다른 영역 위에는 로직 칩(430)이 배치될 수 있다. 일 예에서 메모리 칩들(431-434) 각각은, 복수개, 예컨대 2개의 채널들을 통해 데이터 입출력을 수행할 수 있다. 도면에 나타낸 바와 같이, 4개의 메모리 칩들(431-434)이 적층되고, 메모리 칩들(431-434) 각각이 2개의 채널들을 통해 데이터 입출력을 수행하는 경우, 모두 8개의 메모리 채널들을 통해 데이터 입출력이 이루어질 수 있다.
도 17은 본 개시의 일 예에 따른 메모리 시스템(400)을 나타내 보인 블록도이다. 도 17을 참조하면, 메모리 시스템(400)은 메모리 장치(500) 및 메모리 컨트롤러(600)를 포함한다. 일 예에서 메모리 시스템(400)은, 도 1을 참조하여 설명한 메모리 장치(100)이거나, 도 11을 참조하여 설명한 메모리 장치(200)이거나, 또는 도 15를 참조하여 설명한 메모리 장치(300)일 수 있다. 이에 따라 외부와의 데이터 입출력을 수행하는 데이터 입출력부(540)의 구성은, 도 1의 메모리 장치(100)의 데이터 입출력부(140) 또는 도 11 및 도 15의 메모리 장치들(200, 300)의 데이터 입출력부(240)와 동일하게 구성된다.
메모리 컨트롤러(600)는, 메모리 장치(500)에 대한 제어 동작을 수행한다. 일 예에서, 메모리 컨트롤러(600)는, 리드 큐(read queue)(610)와, 라이트 큐(write queue)(620)와, 커맨드/어드레스 발생기(CMD/ADDR generator)(630)와, 스케줄러(scheduler)(640)와, 그리고 데이터 버퍼(data buffer)(650)를 포함하여 구성될 수 있다. 리드 큐(610)는, 예컨대 호스트로부터 전송되는 리드 요청(REQ_R)을 저장한다. 리드 큐(610)는, 저장되어 있는 리드 요청(REQ_R)들을 스케줄러(640)에 의해 정해지는 순서에 따라 커맨드/어드레스 발생기(630)로 전송한다. 라이트 큐(620)는, 예컨대 호스트로부터 전송되는 라이트 요청(REQ_W)을 저장한다. 라이트 큐(620)는, 저장되어 있는 라이트 요청(REQ_W)들을 스케줄러(640)에 의해 정해지는 순서에 따라 커맨드/어드레스 발생기(630)로 전송한다.
커맨드/어드레스 발생기(630)는, 리드 큐(610) 또는 라이트 큐(620)로부터 전송되는 리드 요청(REQ_R) 또는 라이트 요청(REQ_W)에 응답하여 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)를 생성한다. 커맨드/어드레스 발생기(630)에서 생성된 외부 커맨드(EXT_CMD) 및 외부 어드레스(EXT_ADDR)는 메모리 장치(500)로 전송된다. 스케줄러(640)는, 리드 큐(610)에 저장되어 있는 리드 요청(REQ_R)들의 출력 순서를 조정한다. 또한 스케줄러(640)는, 라이트 큐(620)에 저장되어 있는 라이트 요청(REQ_W)들의 출력 순서를 조정한다. 스케줄러(640)에 의한 스케줄링 동작은, 메모리 장치(500)의 고속 동작을 위해 정해진 알고리즘(algorithm)에 의해 수행되는데, 이에 대해서는 아래에서 보다 상세하게 설명하기로 한다. 데이터 버퍼(650)는, 메모리 장치(500)에 대한 리드 동작 및 라이트 동작시 각각 리드 데이터 및 라이트 데이터를 임시로 저장하는 기능을 수행한다.
본 에 따른 메모리 시스템(400)은, 메모리 컨트롤러(600) 내에서의 스케줄링을 통한 메모리 장치(500)의 고속 동작이 가능하다. 이 경우, 메모리 장치(500)는, 제2 동작 모드에서 동작하는 것을 전제로 한다. 먼저, 메모리 시스템(400)의 메모리 장치(500)가 도 1의 메모리 장치(100)와 같은 구성인 경우를 전제로 한다. 이 경우, 메모리 시스템(400)의 메모리 컨트롤러(600)는, 메모리 장치(500) 내의 하나의 선택 로우에 대해 복수의 외부 커맨드들이 연속적으로 수행되도록 할 수 있다. 도 8을 참조하여 설명한 바와 같이, 제2 동작 모드에서 메모리 장치(500)의 선택 로우의 모든 데이터가 입출력 버퍼부(도 8의 130)에 래치되므로, 두번째 리드 동작부터는 선택 로우에 대한 액티브 동작 및 프리차지 동작 없이 입출력 버퍼부(도 8의 130)에 대한 액세스만을 통해 수행될 수 있다. 이와 같이 메모리 컨트롤러(600) 내에서의 스케줄링에 의한 메모리 장치(500)의 고속 동작은, 메모리 장치(500)가 도 11의 메모리 장치(200) 또는 도 15의 메모리 장치(300)인 경우에도 같은 원리로 적용될 수 있다. 이하에서는 구체적인 예시를 통해 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600)에서의 스케줄링 동작에 대해 상세하게 설명하기로 한다.
도 18은 도 17의 메모리 시스템(400)의 메모리 컨트롤러(600)를 구성하는 리드 큐(610)의 일 예를 나타내 보인 도면이다. 본 예에서 메모리 시스템(400)을 구성하는 메모리 장치(500)는, 도 1을 참조하여 설명한 메모리 장치(100)와 동일하게 구성되고 동작되는 것을 전제로 한다. 리드 큐(610)는, 호스트로부터 전송되는 리드 큐(REQ_R)를 전송되는 순서대로 저장한다. 본 예에서는, 호스트로부터 제1 리드 요청(REQ_R1), 제2 리드 요청(REQ_R2), 및 제3 리드 요청(REQ_R3)이 메모리 컨트롤러(600)로 순서대로 전송되는 경우를 전제로 한다. 이 경우, 리드 큐(610) 내에는 제1 리드 요청(REQ_R1), 제2 리드 요청(REQ_R2), 및 제3 리드 요청(REQ_R3)이 전송되는 순서대로 저장된다.
일 예에서 제1 리드 요청(REQ_R1)은, 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1) 정보를 포함한다. 제1 외부 커맨드(EC1)는 제1 리드 커맨드에 대응한다. 제1 외부 어드레스(EXT_ADDR1)는, 제1 로우 어드레스 "R0" 및 제1 컬럼 어드레스 "C0"에 대응한다. 제2 리드 요청(REQ_R2)은, 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2) 정보를 포함한다. 제2 외부 커맨드(EC2)는 제2 리드 커맨드에 대응한다. 제2 외부 어드레스(EXT_ADDR2)는, 제2 로우 어드레스 "R1" 및 제1 컬럼 어드레스 "C0"에 대응한다. 제3 리드 요청(REQ_R3)은, 제3 외부 커맨드(EC3) 및 제3 외부 어드레스(EXT_ADDR3) 정보를 포함한다. 제3 외부 커맨드(EC3)는 제3 리드 커맨드에 대응한다. 제3 외부 어드레스(EXT_ADDR3)는, 제1 로우 어드레스 "R0" 및 제3 컬럼 어드레스 "C2"에 대응한다.
도 19는 도 18의 리드 큐(610)에 저장된 리드 요청(REQ_R)들이 스케줄링 없이 출력되는 경우의 메모리 시스템(400)의 동작 과정을 나타내 보인 타이밍도이다. 도면에서 화살표의 위의 타이밍도는 메모리 컨트롤러(600)에서의 동작을 나타내고, 화살표 아래의 타이밍도는 메모리 장치(500)에서의 동작을 나타낸다. 도 19를 도 17 및 도 18과 함께 참조하면, 메모리 컨트롤러(600)에서의 스케줄링이 없는 경우, 메모리 컨트롤러(600)의 리드 큐(610)에 저장되어 있는 리드 요청들은, 리드 큐(610)로 전송된 순서대로 출력된다.
구체적으로 먼저 제1 리드 요청(REQ_R1)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제1 리드 요청(REQ_R1)에 응답하여 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1)를 생성하여 메모리 장치(500)로 전송한다. 이에 응답하여 메모리 장치(500)에서는 액티브 커맨드(ACT) 및 로우 어드레스 "R0"가 발생되어 로우 디코더(도 1의 112)로 전송된다. 그러면 복수의 로우들 중 로우 어드레스 "R0"를 갖는 제1 로우가 활성화된다. 제2 동작 모드에서, 제1 로우의 모든 컬럼들의 데이터는 입출력 버퍼부(도 1의 130)에 저장된다. 이어서 메모리 장치(500)에서는 제1 리드 커맨드(RD1) 및 컬럼 어드레스 "C0"가 발생되어 입출력 버퍼부(도 1의 130)로 전송된다. 그러면, 입출력 버퍼부(도 1의 130)에 저장된 제1 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C0"에 의해 선택된 제1 컬럼의 제1 데이터(DATA1)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제1 데이터(DATA1)는, 데이터 입출력부(도 1의 140)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 이어서 메모리 장치(500)에서는 프리차지 커맨드(PRE) 및 로우 어드레스 "R0"이 발생되어 로우 디코더(도 1의 112)로 전송된다. 그러면 로우 어드레스 "R0"을 갖는 제1 로우가 프리차지된다.
다음에 제2 리드 요청(REQ_R2)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제2 리드 요청(REQ_R2)에 응답하여 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 액티브 커맨드(ACT) 및 로우 어드레스 "R1"이 발생되어 로우 디코더(도 1이 112)로 전송된다. 그러면 복수의 로우들 중 로우 어드레스 "R1"을 갖는 제2 로우가 활성화된다. 제2 동작 모드에서, 제2 로우의 모든 컬럼들의 데이터는 입출력 버퍼부(도 1의 130)에 저장된다. 이어서 메모리 장치(500)에서는 제2 리드 커맨드(RD2) 및 컬럼 어드레스 "C0"가 발생되어 입출력 버퍼부(도 1의 130)로 전송된다. 그러면 입출력 버퍼부(도 1의 130)에 저장된 제2 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C0"에 의해 선택된 제1 컬럼의 제2 데이터(DATA2)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제2 데이터(DATA2)는, 데이터 입출력부(도 1의 140)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 이어서 메모리 장치(500)에서는 프리차지 커맨드(PRE) 및 로우 어드레스 "R1"이 발생되어 로우 디코더(도 1의 112)로 전송된다. 그러면 로우 어드레스 "R1"을 갖는 제2 로우가 프리차지된다.
다음에 제3 리드 요청(REQ_R3)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제3 리드 요청(REQ_R3)에 응답하여 제3 외부 커맨드(EC3) 및 제3 외부 어드레스(EXT_ADDR3)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 액티브 커맨드(ACT) 및 로우 어드레스 "R0"이 발생되어 로우 디코더(도 1이 112)로 전송된다. 그러면 복수의 로우들 중 로우 어드레스 "R0"을 갖는 제1 로우가 활성화된다. 제2 동작 모드에서, 제1 로우의 모든 컬럼들의 데이터는 입출력 버퍼부(도 1의 130)에 저장된다. 이어서 메모리 장치(500)에서는 제3 리드 커맨드(RD3) 및 컬럼 어드레스 "C2"가 발생되어 입출력 버퍼부(도 1의 130)로 전송된다. 그러면 입출력 버퍼부(도 1의 130)에 저장된 제1 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C2"에 의해 선택된 제3 컬럼의 제3 데이터(DATA3)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제3 데이터(DATA3)는, 데이터 입출력부(도 1의 140)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 이어서 메모리 장치(500)에서 프리차지 커맨드(PRE) 및 로우 어드레스 "R0"이 발생되어 로우 디코더(도 1의 112)로 전송된다. 그러면 로우 어드레스 "R0"을 갖는 제1 로우가 프리차지된다.
이와 같이 메모리 컨트롤러(600) 내에서 고속 동작을 위한 스케줄링이 수행되지 않은 경우, 제1 리드 요청(REQ_R1)에 의한 제1 리드 동작, 제2 리드 요청(REQ_R2)에 의한 제2 리드 동작, 및 제3 리드 요청(REQ_R3)에 의한 제3 리드 동작이 순서대로 수행된다. 제1 리드 동작, 제2 리드 동작, 제3 리드 동작 중 연속적으로 수행되는 리드 동작들이 모두 다른 로우 어드레스를 갖는 로우에 대해 수행된다. 이에 따라 가장 먼저 수행되는 제1 리드 동작 수행을 위한 액티브 커맨드(ACT) 발생 시점부터 마지막으로 수행되는 제3 리드 동작 수행을 위한 세번째 리드 커맨드, 즉 제3 리드 커맨드(RD3) 발생 시점까지의 시간(T1) 동안, 3회의 액티브 동작 및 2회의 프리차지 동작이 수행되어야 한다.
도 20은 도 18의 리드 큐(610)에 대해 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600) 내에서의 스케줄링이 수행된 이후의 리드 큐(610) 상태를 나타내 보인 도면이다. 도 20을 참조하면, 메모리 컨트롤러(600)에서의 스케줄링에 의해, 리드 큐(610)로부터의 리드 요청들의 출력 순서는, 제1 리드 요청(REQ_R1), 제3 리드 요청(REQ_R3), 제2 리드 요청(REQ_R2)의 순서로 변경된다. 즉 제2 리드 요청(REQ_R2)의 출력 순서와 제3 리드 요청(REQ_R3)의 출력 순서가 서로 바뀐다.즉 메모리 컨트롤러(600)에서의 스케줄링은, 제1 리드 요청(REQ_R1)가 갖는 로우 어드레스 "R0"과 동일한 로우 어드레스에 대한 리드 동작을 요청하는 제3 리드 요청(REQ_R3)이 제1 리드 요청(REQ_R1)에 이어서 연속적으로 출력되도록 이루어진다.
이에 따라 로우 어드레스 "R0" 및 컬럼 어드레스 "C0"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제1 리드 요청(REQ_R1)이 가장 먼저 수행된다. 이어서 제1 리드 요청(REQ_R1)과 동일한 로우 어드레스 "R0" 및 컬럼 어드레스 "C2"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제3 리드 요청(REQ_R3)이 수행된다. 다음에 로우 어드레스 "R1" 및 컬럼 어드레스 "C0"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제2 리드 요청(REQ_R2)이 수행된다. 이와 같은 스케줄링에 의한 리드 요청의 출력 순서 변경을 통해, 로우 어드레스 "R0"에 대한 데이터 리드를 요청하는 제1 리드 요청(REQ_R1) 및 제3 리드 요청(REQ_R3)이 연속적으로 수행되게 된다.
도 21은 도 20의 리드 큐(610)에 저장된 리드 요청(REQ_R)들이 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600)에서의 스케줄링에 의해 변경된 순서대로 출력되는 경우의 메모리 시스템(400)의 동작 과정을 나타내 보인 타이밍도이다. 도면에서 화살표의 위의 타이밍도는 메모리 컨트롤러(600)에서의 동작을 나타내고, 화살표 아래의 타이밍도는 메모리 장치(500)에서의 동작을 나타낸다. 도 21을 도 17 및 도 20과 함께 참조하면, 리드 큐(610)에 저장되어 있는 리드 요청들이 스케줄링에 의해 변경된 순서대로 출력되어 수행된다.
구체적으로 먼저 제1 리드 요청(REQ_R1)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제1 리드 요청(REQ_R1)에 응답하여 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 액티브 커맨드(ACT) 및 로우 어드레스 "R0"에 의해 메모리 장치(500) 내의 메모리 영역에서 로우 어드레스 "R0"를 갖는 제1 로우가 활성화된다. 제1 로우의 모든 컬럼들의 데이터는 모두 입출력 버퍼부(도 1의 130)에 저장된다. 이어서 제1 리드 커맨드(RD1) 및 컬럼 어드레스 "C0"에 의해, 입출력 버퍼부(도 1의 130)에 저장된 제1 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C0"에 의해 선택된 제1 컬럼의 제1 데이터(DATA1)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제1 데이터(DATA1)는, 데이터 입출력부(도 1의 140)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 후속의 제3 외부 요청(REQ_R3)이 제1 외부 요청(REQ_R1)과 동일한 로우 어드레스 "R0"를 갖는 제1 로우에 대한 데이터 리드이므로, 제1 로우에 대한 프리차지는 수행할 필요가 없다.
다음에 제3 리드 요청(REQ_R3)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제3 리드 요청(REQ_R3)에 응답하여 제3 외부 커맨드(EC3) 및 제3 외부 어드레스(EXT_ADDR3)를 생성하여 메모리 장치(500)로 전송한다. 제3 외부 어드레스(EXT_ADDR3)가 입출력 버퍼부(도 1의 130)에 저장되어 있는 로우 어드레스 "R0"를 갖는 제1 로우와 동일하므로, 메모리 장치(500) 내의 메모리 영역에 대한 액세스가 수행되지 않는다. 즉 메모리 장치(500) 내에서 메모리 영역으로의 액티브 커맨드(ACT) 및 로우 어드레스 전송은 생략된다. 메모리 장치(500) 내에서 제3 리드 커맨드(RD3) 및 컬럼 어드레스 "C2"가 발생되면, 메모리 영역에 대한 액세스 없이, 입출력 버퍼부(도 1의 130)에 저장되어 있는 제1 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C2"를 갖는 제3 컬럼의 제3 데이터(DATA3)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제3 데이터(DATA3)는, 데이터 입출력부(도 1의 140)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 이어서 메모리 장치(500)에서 프리차지 커맨드(PRE)에 응답하여 제2 로우가 프리차지된다.
다음에 제2 리드 요청(REQ_R2)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제2 리드 요청(REQ_R2)에 응답하여 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 액티브 커맨드(ACT) 및 로우 어드레스 "R1"에 의해 메모리 장치(500) 내의 메모리 영역에서 로우 어드레스 "R1"을 갖는 제2 로우가 활성화된다. 제2 로우의 모든 컬럼들으리 데이터는 입출력 버퍼부(도 1의 130)에 저장된다. 이어서 제2 리드 커맨드(RD2) 및 컬럼 어드레스 "C0"에 의해 입출력 버퍼부(도 1의 130)에 저장된 제2 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스 "C0"을 갖는 제1 컬럼의 제2 데이터(DATA2)가 입출력 버퍼부(도 1의 130)로부터 출력된다. 입출력 버퍼부(도 1의 130)로부터 출력되는 제2 데이터(DATA2)는, 데이터 입출력부(도 1의 130)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 이어서 메모리 장치(500)에서 프리차지 커맨드(PRE)에 응답하여 제2 로우가 프리차지된다.
이와 같이 메모리 컨트롤러(600) 내에서 고속 동작을 위한 스케줄링이 수행되는 경우, 제1 리드 요청(REQ_R1)에 의한 제1 리드 동작, 제3 리드 요청(REQ_R3)에 의한 제3 리드 동작, 및 제2 리드 요청(REQ_R2)에 의한 제2 리드 동작이 순서대로 수행된다. 이와 같은 순서에 따라서 연속적으로 수행되는 제1 리드 동작 및 제3 리드 동작이 동일한 로우 어드레스를 갖는 선택 로우에 대한 리드 동작이므로, 제3 리드 동작을 위해 선택 로우를 활성화시키고 프리차지시키는 과정을 생략할 수 있다. 이에 따라, 가장 먼저 수행되는 제1 리드 동작 수행을 위한 액티브 커맨드(ACT) 발생 시점부터 마지막으로 수행되는 제2 리드 동작 수행을 위한 제2 리드 커맨드(RD2) 발생 시점까지의 시간(T2) 동안, 2회의 액티브 동작 및 1회의 프리차지 동작만 수행된다.
도 22는 도 17의 메모리 시스템(400)에서 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600) 내에서의 스케줄링 방법을 설명하기 위해 나타내 보인 플로 챠트이다. 도 22를 도 17과 함께 참조하면, 단계 710에서, 리드 큐(610)에 저장된 리드 요청들 중 현재 실행중인 제1 리드 요청의 제1 로우 어드레스를 스케줄러(640)로 입력시킨다. 단계 720에서, 리드 큐(610)에 저장된 리드 요청들 중 제1 리드 요청에 이어서 첫번째로 실행 대기중인 제2 리드 요청의 제2 로우 어드레스를 스케줄러(640)로 입력시킨다. 단계 730에서, 스케줄러(640)는, 제1 로우 어드레스와 제2 로우 어드레스를 비교한 후, 제1 로우 어드레스와 제2 로우 어드레스가 동일한지의 여부를 판단한다.
단계 730의 판단에서, 제1 로우 어드레스와 제2 로우 어드레스가 동일한 경우, 제2 리드 요청이 리드 큐(610)로부터 출력되는 순서를 유지시킨다. 반면에 단계 730의 판단에서, 제1 로우 어드레스와 제2 로우 어드레스가 동일하지 않은 경우, 단계 740에서 리드 큐(610)에 저장된 리드 요청들 중 제2 리드 요청에 이어서 실행 대기중인 제3 리드 요청의 제3 로우 어드레스를 스케줄러(640)로 입력시킨다. 단계 750에서, 스케줄러(640)는, 제1 로우 어드레스와 제3 로우 어드레스를 비교한 후, 제1 로우 어드레스와 제3 로우 어드레스가 동일한지의 여부를 판단한다. 단계 750이 판단에서, 제1 로우 어드레스와 제2 로우 어드레스가 동일하지 않은 경우, 스케줄링 동작을 종료하여 제3 리드 요청이 리드 큐(610)로부터 출력되는 순서를 유지시킨다. 반면에 단계 750의 판단에서, 제1 로우 어드레스와 제2 로우 어드레스가 동일한 경우, 단계 760에서 리드 큐(610)에 저장된 리드 요청들 중 첫번째 실행 대기중인 제2 리드 요청과 두번째 실행 대기중인 제3 리드 요청의 출력 순서를 바꾼다. 이에 따라 현재 실행중인 제1 리드 요청과 동일한 로우 어드레스에 대한 리드 동작을 요구하는 제3 리드 요청이, 제1 리드 요청에 이어서 연속적으로 수행될 수 있다.
도 23은 도 17의 메모리 시스템(400)의 메모리 컨트롤러(600)를 구성하는 리드 큐(610)의 다른 예를 나타내 보인 도면이다. 본 예에서 메모리 시스템(400)을 구성하는 메모리 장치(500)는, 도 11을 참조하여 설명한 메모리 장치(200) 또는 도 15를 참조하여 설명한 메모리 장치(300)와 동일하게 구성되고 동작되는 것을 전제로 한다. 본 예에 따른 리드 큐(612)는, 호스트로부터 전송되는 리드 큐(REQ_R)를 전송되는 순서대로 저장한다. 본 예에서는, 호스트로부터 제1 리드 요청(REQ_R1), 제2 리드 요청(REQ_R2), 제3 리드 요청(REQ_R3), 제4 리드 요청(REQ_R4), 및 제5 리드 요청(REQ_R5)이 메모리 컨트롤러(600)로 순서대로 전송되는 경우를 전제로 한다. 이 경우, 리드 큐(612) 내에는 제1 리드 요청(REQ_R1), 제2 리드 요청(REQ_R2), 제3 리드 요청(REQ_R3), 제4 리드 요청(REQ_R4), 및 제5 리드 요청(REQ_R5)이 전송되는 순서대로 저장된다.
일 예에서 제1 리드 요청(REQ_R1)은, 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1) 정보를 포함한다. 제1 외부 커맨드(EC1)는 제1 리드 동작을 위한 커맨드에 해당한다. 제1 외부 어드레스(EXT_ADDR1)는, 제1 로우 어드레스 "R0", 제1 컬럼 어드레스 "C0", 및 제1 뱅크 어드레스 "B0"로 디코딩될 수 있다. 제2 리드 요청(REQ_R2)은, 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2) 정보를 포함한다. 제2 외부 커맨드(EC2)는 제2 리드 동작을 위한 커맨드에 해당한다. 제2 외부 어드레스(EXT_ADDR2)는, 제1 로우 어드레스 "R0", 제5 컬럼 어드레스 "C5", 및 제1 뱅크 어드레스 "B0"로 디코딩될 수 있다. 제3 리드 요청(REQ_R3)은, 제3 외부 커맨드(EC3) 및 제3 외부 어드레스(EXT_ADDR3) 정보를 포함한다. 제3 외부 커맨드(EC3)는 제3 리드 동작을 위한 커맨드에 해당한다. 제3 외부 어드레스(EXT_ADDR3)는, 제1 로우 어드레스 "R0", 제1 컬럼 어드레스 "C0", 및 제2 뱅크 어드레스 "B1"로 디코딩될 수 있다. 제4 리드 요청(REQ_R4)은, 제4 외부 커맨드(EC4) 및 제4 외부 어드레스(EXT_ADDR4) 정보를 포함한다. 제4 외부 커맨드(EC4)는 제4 리드 동작을 위한 커맨드에 해당한다. 제4 외부 어드레스(EXT_ADDR4)는, 제1 로우 어드레스 "R0", 제5 컬럼 어드레스 "C4", 및 제2 뱅크 어드레스 "B1"로 디코딩될 수 있다. 그리고 제5 리드 요청(REQ_R5)은, 제5 외부 커맨드(EC5) 및 제5 외부 어드레스(EXT_ADDR5) 정보를 포함한다. 제5 외부 커맨드(EC5)는 제5 리드 동작을 위한 커맨드에 해당한다. 제5 외부 어드레스(EXT_ADDR5)는, 제1 로우 어드레스 "R0", 제1 컬럼 어드레스 "C0", 및 제3 뱅크 어드레스 "B2"로 디코딩될 수 있다.
도 24는 도 23의 리드 큐(612)에 저장된 리드 요청들(REQ_Rs)이 메모리 컨트롤러(600)에서의 스케줄링 없이 출력되는 경우의 메모리 시스템(400)의 동작 과정을 나타내 보인 타이밍도이다. 도면에서 화살표의 위의 타이밍도는 메모리 컨트롤러(600)에서의 동작을 나타내고, 화살표 아래의 타이밍도는 메모리 장치(500)에서의 동작을 나타낸다. 도 24를 도 17 및 도 23과 함께 참조하면, 메모리 컨트롤러(600)에서의 스케줄링이 없는 경우, 메모리 컨트롤러(600)의 리드 큐(612)에 저장되어 있는 리드 요청들(REQ_Rs)은, 호스트로부터 리드 큐(612)로 전송된 순서대로 출력된다.
구체적으로 먼저 제1 리드 요청(REQ_R1)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제1 리드 요청(REQ_R1)에 응답하여 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1)를 생성하여 메모리 장치(500)로 전송한다. 이에 응답하여 메모리 장치(500)에서는 먼저 액티브 커맨드(ACT) 및 제1 로우 어드레스 "R0"가 모든 뱅크들(도 11의 211_0, …, 213_(L-1))의 로우 디코더들(도 11의 212_0, …, 211_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 각각의 복수의 로우들 중 제1 로우 어드레스 "R0"를 갖는 제1 로우가 활성화된다. 이어서 메모리 장치(500)에서 제1 리드 커맨드(RD1) 및 제1 컬럼 어드레스 "C0"이 컬럼 디코더들(도 11의 213_0, …, 213_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 내의 제1 로우의 모든 컬럼들의 데이터 중 제1 컬럼 어드레스 "C0"에 의해 선택되는 제1 컬럼의 데이터가 입출력 버퍼부(도 11의 230)에 저장된다. 이어서 메모리 장치(500)에서 제1 리드 커맨드(RD1) 및 제1 뱅크 어드레스 "B0"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 선택 뱅크인 제1 뱅크(도 11의 211_0)의 데이터, 즉 제1 뱅크(도 11의 211_0)의 제1 로우의 제1 컬럼의 제1 데이터(DATA1)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제1 데이터(DATA1)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 본 예에서와 같이, 모든 요청 규들(REQ_Rs)이 동일한 로우에 대한 리드 동작을 요구하는 경우, 선택 로우인 제1 로우 어드레스 "R0"을 갖는 제1 로우에 대한 프리차지 동작은 생략될 수 있다.
다음에 제2 리드 요청(REQ_R2)이 리드 큐(612)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제2 리드 요청(REQ_R2)에 응답하여 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2)를 생성하여 메모리 장치(500)로 전송한다. 본 예에서와 같이, 모든 요청 규들(REQ_Rs)이 동일한 로우에 대한 리드 동작을 요구하는 경우, 선택 로우인 제1 로우 어드레스 "R0"을 갖는 제1 로우에 대한 액티브 동작은 생략될 수 있다. 메모리 장치(500)에서 제2 리드 커맨드(RD2) 및 제5 컬럼 어드레스 "C4"가 컬럼 디코더들(도 11의 213_0, …, 213_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 내의 제1 로우의 모든 컬럼들의 데이터 중 제5 컬럼 어드레스 "C4"에 의해 선택되는 제5 컬럼의 데이터가 입출력 버퍼부(도 11의 230)에 저장된다. 이어서 메모리 장치(500)에서 제2 리드 커맨드(RD2) 및 제1 뱅크 어드레스 "B0"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 선택 뱅크인 제1 뱅크(도 11의 211_0)의 데이터, 즉 제1 뱅크(도 11의 211_0)의 제1 로우의 제5 컬럼의 제2 데이터(DATA2)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제2 데이터(DATA2)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다.
제3 리드 요청(REQ_R3), 제4 리드 요청(REQ_R4), 및 제5 리드 요청(REQ_R5)에 대해서도 제2 리드 요청(REQ_R2)에 의한 제2 리드 동작과 동일한 제3 리드 동작, 제4 리드 동작, 및 제5 리드 동작이 순차적으로 수행된다. 이 과정에서 제1 리드 커맨드(RD1)에 의해 액세스되는 컬럼과 제2 리드 커맨드(RD2)에 의해 액세스되는 컬럼이 다르므로, 두 리드 컨맨드들 사이에는 "tCCD1"의 시간 간격이 요구된다. 여기서 "tCCD1"는 서로 다른 컬럼들에 대한 연속된 리드 커맨드들 사이에 필요한 최소한의 시간 간격을 의미한다. 마찬가지로 다른 컬럼에 대한 액세스를 요구하는 제2 리드 커맨드(RD2)와 제3 리드 커맨드(RD3) 사이와, 제3 리드 커맨드(RD3)와 제4 리드 커맨드(RD4) 사이와, 그리고 제4 리드 커맨드(RD4)와 제5 리드 커맨드(RD5) 사이에서 "tCCD1"의 시간 간격이 요구된다.
도 25는 도 23의 리드 큐(612)에 대해 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600) 내에서의 스케줄링이 수행된 이후의 리드 큐(612)에서의 리드 요청들의 저장 상태를 나타내 보인 도면이다. 도 25를 참조하면, 메모리 컨트롤러(600)에서의 스케줄링에 의해, 리드 큐(612)로부터의 리드 요청들의 출력 순서는, 제1 리드 요청(REQ_R1), 제3 리드 요청(REQ_R3), 제5 리드 요청(REQ_R5), 제2 리드 요청(REQ_R2), 및 제4 리드 요청(REQ_R4)의 순서로 변경된다. 즉 비록 선택 뱅크는 다르지만, 제1 리드 요청(REQ_R1)과 동일하게 제1 컬럼 어드레스 "C0"을 갖는 제1 컬럼에 대한 리드 동작을 요구하는 제3 리드 요청(REQ_R3) 및 제5 리드 요청(REQ_R5)이 제1 리드 요청(REQ_R1)에 이어 연속적으로 출력되도록 순서가 변경되었다. 유사하게 서로 동일한 제5 컬럼 어드레스 "C4"를 갖는 제5 컬럼에 대한 리드 동작을 요구하는 제2 리드 요청(REQ_R2) 및 제4 리드 요청(REQ_R4)이 연속적으로 출력되도록 순서가 변경되었다.
위와 같은 스케줄링에 의해, 제1 컬럼 어드레스 "C0"에 의해 선택되는 제1 컬럼의 데이터에 대한 리드를 요청하는 제1 리드 요청(REQ_R1), 제3 리드 요청(REQ_R3), 및 제5 리드 요청(REQ_R5)이 순차적으로 리드 큐(612)로부터 출력된다. 이에 따라 제1 뱅크(도 11의 211_0)에서 제1 로우 어드레스 "R0" 및 제1 컬럼 어드레스 "C0"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제1 리드 요청(REQ_R1)이 가장 먼저 수행된다. 이어서 제2 뱅크(도 11의 211_1)에서 제1 로우 어드레스 "R0" 및 제1 컬럼 어드레스 "C0"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제3 리드 요청(REQ_R3)이 수행된다. 이어서 제3 뱅크(도 11의 211_2)에서 제1 로우 어드레스 "R0" 및 제1 컬럼 어드레스 "C0"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제5 리드 요청(REQ_R5)이 수행된다.
제5 리드 요청(REQ_R5)이 리드 큐(612)로부터 출력되고, 이에 응답하여 메모리 장치(500)에서의 제5 리드 동작이 종료되면, 제5 컬럼 어드레스 "C4"에 의해 선택되는 제5 컬럼의 데이터에 대한 리드를 요청하는 제2 리드 요청(REQ_R2) 및 제4 리드 요청(REQ_R4)이 순차적으로 리드 큐(612)로부터 출력된다. 이에 따라 제1 뱅크(도 11의 211_0)에서 제1 로우 어드레스 "R0" 및 제5 컬럼 어드레스 "C4"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제2 리드 요청(REQ_R2)이 수행된다. 이어서 제2 뱅크(도 11의 211_1)에서 제1 로우 어드레스 "R0" 및 제5 컬럼 어드레스 "C4"에 의한 선택 로우 및 선택 컬럼의 데이터 리드를 요청하는 제4 리드 요청(REQ_R4)이 수행된다.
도 26은 도 25의 리드 큐(612) 내에 출력 순서가 변경되어 저장된 리드 요청(REQ_R)들의 출력에 의해 메모리 시스템(400)이 동작하는 과정을 나타내 보인 타이밍도이다. 도면에서 화살표의 위의 타이밍도는 메모리 컨트롤러(600)에서의 동작을 나타내고, 화살표 아래의 타이밍도는 메모리 장치(500)에서의 동작을 나타낸다. 도 26을 도 17 및 도 25와 함께 참조하면, 메모리 컨트롤러(600)에서 제1 리드 요청(REQ_R1)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제1 리드 요청(REQ_R1)에 응답하여 제1 외부 커맨드(EC1) 및 제1 외부 어드레스(EXT_ADDR1)를 생성하여 메모리 장치(500)로 전송한다. 이에 응답하여 메모리 장치(500)에서는 먼저 액티브 커맨드(ACT) 및 제1 로우 어드레스 "R0"가 모든 뱅크들(도 11의 211_0, …, 213_(L-1))의 로우 디코더들(도 11의 212_0, …, 211_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 각각의 복수의 로우들 중 제1 로우 어드레스 "R0"를 갖는 제1 로우가 활성화된다. 이어서 메모리 장치(500)에서 제1 리드 커맨드(RD1) 및 제1 컬럼 어드레스 "C0"이 컬럼 디코더들(도 11의 213_0, …, 213_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 내의 제1 로우의 모든 컬럼들의 데이터 중 제1 컬럼 어드레스 "C0"에 의해 선택되는 제1 컬럼의 데이터가 입출력 버퍼부(도 11의 230)에 저장된다.
이어서 메모리 장치(500)에서 제1 리드 커맨드(RD1) 및 제1 뱅크 어드레스 "B0"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 선택 뱅크인 제1 뱅크(도 11의 211_0)의 데이터, 즉 제1 뱅크(도 11의 211_0)의 제1 로우의 제1 컬럼의 제1 데이터(DATA1)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제1 데이터(DATA1)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다. 본 예에서와 같이, 모든 요청 규들(REQ_Rs)이 동일한 로우에 대한 리드 동작을 요구하는 경우, 선택 로우인 제1 로우 어드레스 "R0"을 갖는 제1 로우에 대한 프리차지 동작은 생략될 수 있다.
다음에 메모리 컨트롤러(600) 내에서 제3 리드 요청(REQ_R3)이 리드 큐(612)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제3 리드 요청(REQ_R3)에 응답하여 제3 외부 커맨드(EC3) 및 제3 외부 어드레스(EXT_ADDR3)를 생성하여 메모리 장치(500)로 전송한다. 본 예에서와 같이, 모든 요청 규들(REQ_Rs)이 동일한 로우에 대한 리드 동작을 요구하는 경우, 선택 로우인 제1 로우 어드레스 "R0"을 갖는 제1 로우에 대한 액티브 동작은 생략될 수 있다. 메모리 장치(500)에서는 제3 리드 커맨드(RD3) 및 제2 뱅크 어드레스 "B1"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 제1 리드 요청(REQ_R1)에 의한 제1 리드 동작과 동일하게, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 제2 뱅크 어드레스 "B1"에 의해 선택된 제2 뱅크(211_1)의 제1 로우 및 제1 컬럼의 제3 데이터(DATA3)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제3 데이터(DATA3)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다.
다음에 메모리 컨트롤러(600) 내에서 제5 리드 요청(REQ_R5)이 리드 큐(612)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제5 리드 요청(REQ_R5)에 응답하여 제5 외부 커맨드(EC5) 및 제5 외부 어드레스(EXT_ADDR5)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 제5 리드 커맨드(RD5) 및 제3 뱅크 어드레스 "B2"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 제1 리드 요청(REQ_R1)에 의한 제1 리드 동작 및 제2 리드 요청(REQ_R2)에 의한 제2 리드 동작과 동일하게, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 제2 뱅크 어드레스 "B1"에 의해 선택된 제2 뱅크(211_1)의 제1 로우 및 제1 컬럼의 제3 데이터(DATA3)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제3 데이터(DATA3)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다.
메모리 컨트롤러(600)에서 제2 리드 요청(REQ_R2)이 리드 큐(610)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제2 리드 요청(REQ_R1)에 응답하여 제2 외부 커맨드(EC2) 및 제2 외부 어드레스(EXT_ADDR2)를 생성하여 메모리 장치(500)로 전송한다. 이에 응답하여 메모리 장치(500)에서는 먼저 액티브 커맨드(ACT) 및 제1 로우 어드레스 "R0"가 모든 뱅크들(도 11의 211_0, …, 213_(L-1))의 로우 디코더들(도 11의 212_0, …, 211_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 각각의 복수의 로우들 중 제1 로우 어드레스 "R0"를 갖는 제1 로우가 활성화된다. 이어서 이전에 수행된 제5 리드 동작에 의해 컬럼 어드레스가 변경됨에 따라, 메모리 장치(500)에서 제1 리드 커맨드(RD1) 및 제5 컬럼 어드레스 "C4"이 컬럼 디코더들(도 11의 213_0, …, 213_(L-1))로 전송된다. 그러면 뱅크들(도 11의 211_0, …, 213_(L-1)) 내의 제1 로우의 모든 컬럼들의 데이터 중 제5 컬럼 어드레스 "C4"에 의해 선택되는 제5 컬럼의 데이터가 입출력 버퍼부(도 11의 230)에 저장된다.
이어서 메모리 장치(500)에서 제2 리드 커맨드(RD2) 및 제1 뱅크 어드레스 "B0"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 선택 뱅크인 제1 뱅크(도 11의 211_0)의 데이터, 즉 제1 뱅크(도 11의 211_0)의 제1 로우의 제5 컬럼의 제2 데이터(DATA2)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제2 데이터(DATA2)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다.
다음에 메모리 컨트롤러(600) 내에서 제4 리드 요청(REQ_R4)이 리드 큐(612)로부터 커맨드/어드레스 발생기(630)로 전송된다. 커맨드/어드레스 발생기(630)는, 제4 리드 요청(REQ_R4)에 응답하여 제4 외부 커맨드(EC4) 및 제4 외부 어드레스(EXT_ADDR4)를 생성하여 메모리 장치(500)로 전송한다. 메모리 장치(500)에서는 제4 리드 커맨드(RD4) 및 제2 뱅크 어드레스 "B1"가 입출력 버퍼부(도 11의 230)로 전송된다. 그러면, 제2 리드 요청(REQ_R2)과 동일하게, 입출력 버퍼부(도 11의 230)에 저장된 데이터 중 제2 뱅크 어드레스 "B1"에 의해 선택된 제2 뱅크(211_1)의 제1 로우 및 제5 컬럼의 제4 데이터(DATA4)가 입출력 버퍼부(도 11의 230)로부터 출력된다. 입출력 버퍼부(도 11의 230)로부터 출력되는 제4 데이터(DATA4)는, 데이터 입출력부(도 11의 240)를 통해 메모리 장치(500)로부터 메모리 컨트롤러(600) 내의 데이터 버퍼(650)로 전송된다.
이와 같이 메모리 컨트롤러(600) 내에서 고속 동작을 위한 스케줄링이 수행되는 경우, 메모리 장치(500)에서는 제1 리드 요청(REQ_R1)에 의한 제1 리드 동작, 제3 리드 요청(REQ_R3)에 의한 제3 리드 동작, 제5 리드 요청(REQ_R5)에 의한 제5 리드 동작, 제2 리드 요청(REQ_R2)에 의한 제2 리드 동작, 및 제4 리드 요청(REQ_R4)에 의한 제4 리드 동작이 순서대로 수행된다. 이 과정에서 제1 리드 커맨드(RD1), 제3 리드 커맨드(RD3), 및 제5 리드 커맨드(RD5)에 의해 액세스되는 컬림이 동일하므로, 두 리드 컨맨드들 사이에 요구되는 시간 간격인 "tCCD2"는, 서로 다른 컬럼에 대한 리드 동작을 요구하는 리드 커맨드들 사이의 시간 간격인 "tCCD1"보다 짧다. 마찬가지로 동일한 컬럼, 즉 제5 컬럼에 대한 액세스를 요구하는 제2 리드 커맨드(RD2)와 제4 리드 커맨드(RD3) 사이에도 "tCCD1"의 시간 간격보다 짧은 "tCCD2"의 시간 간격이 요구된다. 단지 서로 다른 컬럼에 대한 액세스를 요구하는 제5 리드 커맨드(RD5)와 제2 리드 커맨드(RD2) 사이만 "tCCD1"의 시간 간격이 요구된다. 이에 따라 첫번째 리드 동작이 수행되는 시점부터 마지막 리드 동작이 수행되는 시점까지의 전체 시간은, 스케줄링이 없는 경우에 비하여 "(tCCD1-tCCD2)*3"만큼 단축된다.
도 27는 도 17의 메모리 시스템(400)에서 메모리 장치(500)의 고속 동작을 위한 메모리 컨트롤러(600) 내에서의 스케줄링 방법의 다른 예를 설명하기 위해 나타내 보인 플로 챠트이다. 본 예에서, 도 25 및 도 26을 참조하여 설명한 바와 같이, 리드 큐(610)에 저장된 리드 요청들은 모두 동일한 로우 어드레스를 갖는 로우에 대한 리드 요청들인 경우를 전제로 한다. 다른 예에서, 서로 다른 로우 어드레스를 갖는 로우에 대한 리드 요청들이 리드 큐(610)에 저장되어 있는 경우에는, 도 22를 참조하여 설명한 과정과 동일한 과정이 먼저 수행될 수 있다.
도 27을 도 17과 함께 참조하면, 단계 810에서, 리드 큐(610)에 저장된 리드 요청들 중 현재 실행중인 제1 리드 요청의 제1 컬럼 어드레스를 스케줄러(640)로 입력시킨다. 일 예에서 현재 실행중인 제1 리드 요청은, 리드 큐(610)에서 가장 먼저 출력 대기중에 있는 리드 요청으로 대체될 수 있다. 단계 820에서, 리드 큐(610)에 저장된 리드 요청들 중 제1 리드 요청에 이어서 첫번째로 실행 대기중인 제2 리드 요청의 제2 컬럼 어드레스를 스케줄러(640)로 입력시킨다. 단계 830에서, 스케줄러(640)는, 제1 컬럼 어드레스와 제2 컬럼 어드레스를 비교한 후, 제1 컬럼 어드레스와 제2 컬럼 어드레스가 동일한지의 여부를 판단한다.
단계 830의 판단에서, 제1 컬럼 어드레스와 제2 컬럼 어드레스가 동일한 경우, 제2 리드 요청이 리드 큐(610)로부터 출력되는 순서를 유지시킨다. 반면에 단계 830의 판단에서, 제1 컬럼 어드레스와 제2 컬럼 어드레스가 동일하지 않은 경우, 단계 840에서 리드 큐(610)에 저장된 리드 요청들 중 제2 리드 요청에 이어서 실행 대기중인 제3 리드 요청의 제3 컬럼 어드레스를 스케줄러(640)로 입력시킨다. 단계 850에서, 스케줄러(640)는, 제1 컬럼 어드레스와 제3 컬럼 어드레스를 비교한 후, 제1 컬럼 어드레스와 제3 컬럼 어드레스가 동일한지의 여부를 판단한다. 단계 850이 판단에서, 제1 컬럼 어드레스와 제2 컬럼 어드레스가 동일하지 않은 경우, 스케줄링 동작을 종료하여 제3 리드 요청이 리드 큐(610)로부터 출력되는 순서를 유지시킨다. 반면에 단계 850의 판단에서, 제1 컬럼 어드레스와 제2 컬럼 어드레스가 동일한 경우, 단계 860에서 리드 큐(610)에 저장된 리드 요청들 중 첫번째 실행 대기중인 제2 리드 요청과 두번째 실행 대기중인 제3 리드 요청의 출력 순서를 바꾼다. 이에 따라 현재 실행중인 제1 리드 요청과 동일한 컬럼 어드레스에 대한 리드 동작을 요구하는 제3 리드 요청이, 제1 리드 요청에 이어서 연속적으로 수행될 수 있다.
이제까지 본 출원 기술에 대하여 실시예들을 중심으로 살펴보았다. 본 출원 기술이 속하는 기술분야에서 통상의 지식을 가진 자는 본 출원 기술이 본 출원 기술의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 출원 기술의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 출원 기술에 포함된 것으로 해석되어야 할 것이다.
100...메모리 장치 111...메모리 영역
112...로우 디코더 113...컬럼 디코더
120...커맨드/어드레스 디코더 130...입출력 버퍼부
140...데이터 입출력부

Claims (24)

  1. 데이터가 저장되는 메모리 영역;
    외부 버스를 통해 데이터 입출력을 수행하는 데이터 입출력부;
    상기 메모리영역 및 상기 데이터 입출력 단자 사이에 배치되어, 상기 메모리 영역으로부터 전송되는 데이터를 저장하는 입출력 버퍼부; 및
    상기 메모리영역 및 상기 입출력 버퍼부 사이의 데이터 전송 경로를 제공하고, 상기 외부 버스의 대역 폭보다 큰 제1 대역 폭을 갖는 제1 내부 데이터 전송 라인을 포함하며,
    상기 제1 내부 데이터 전송 라인을 통한 상기 메모리영역 및 상기 입출력 버퍼부 사이의 데이터 전송은, 제1 동작 모드에서 상기 제1 대역 폭의 일부만 사용되고, 제2 동작 모드에서 상기 제1 대역 폭이 모두 사용되도록 구성되는 메모리 장치.
  2. 제1항에 있어서,
    상기 메모리 영역은, 복수의 매트릭스들을 포함하되,
    상기 복수의 매트릭스들 각각은, 복수의 로우들 및 복수의 컬럼들의 교차점들 각각에 메모리 셀이 배치되는 메모리 셀 어레이와, 그리고 상기 컬럼들과 결합되는 입력라인들 및 출력라인들을 갖는 센스 앰프 회로를 포함하고, 그리고
    상기 센스 앰프 회로는, 상기 제1 동작 모드 및 제2 동작 모드에서, 액티브 커맨드에 응답하여 로우 어드레스에 의해 선택된 선택 로우의 모든 컬럼들의 데이터를 입력받고, 상기 제1 동작 모드에서, 리드 커맨드에 응답하여 컬럼 어드레스에 의해 선택된 컬럼의 데이터를 출력시키며, 그리고 상기 제2 동작 모드에서, 상기 리드 커맨드에 응답하여 상기 선택 로우의 모든 컬럼들의 데이터를 출력시키도록 구성되는 메모리 장치.
  3. 제2항에 있어서,
    상기 액티브 커맨드 및 상기 로우 어드레스를 입력받고, 상기 로우 어드레스에 의해 지정되는 선택 로우를 활성화시키도록 구성되는 로우 디코더; 및
    상기 제1 동작 모드에서 상기 리드 커맨드 및 상기 컬럼 어드레스를 입력받고, 상기 컬럼 어드레스에 의해 지정되는 선택 컬럼을 활성화시키며, 상기 제2 동작 모드에서 상기 리드 커맨드를 입력받고, 상기 선택 로우의 모든 컬럼들을 활성화시키도록 구성되는 컬럼 디코더를 더 포함하는 메모리 장치.
  4. 제1항에 있어서, 상기 메모리영역은,
    상기 제1 동작 모드에서, 로우 어드레스에 의해 선택된 선택 로우의 모든 컬럼들의 데이터 중 컬럼 어드레스에 의해 선택된 선택 컬럼의 데이터를 상기 제1 내부 데이터 전송 라인을 통해 출력시키고, 그리고
    상기 제2 동작 모드에서, 상기 로우 어드레스에 의해 선택된 로우의 모든 컬럼들의 데이터를 상기 제1 내부 데이터 전송 라인을 통해 출력시키도록 구성되는 메모리 장치.
  5. 제4항에 있어서,
    상기 메모리 영역은, "K"개(K은 2 이상의 자연수)의 매트릭스들을 포함하되,
    상기 매트릭스들 각각은 "M"개(M은 2 이상의 자연수)의 로우들을 갖고, 상기 로우들 각각은 "N"개(N은 2 이상의 자연수)의 컬럼들을 가지며,
    상기 제1 내부 데이터 전송 라인이 갖는 상기 제1 대역 폭은, (K*N)비트이고,
    상기 제1 동작 모드에서 상기 (K*N)비트의 제1 대역 폭 중 K비트만 사용되고, 상기 제2 동작 모드에서 상기 (K*N)비트의 제1 대역 폭 모두가 사용되도록 구성되는 메모리 장치.
  6. 제1항에 있어서,
    상기 메모리 영역은, "K"개(K은 2 이상의 자연수)의 매트릭스들을 포함하되,
    상기 매트릭스들 각각은 "M"개(M은 2 이상의 자연수)의 로우들을 갖고, 상기 로우들 각각은 "N"개(N은 2 이상의 자연수)의 컬럼들을 가지며,
    상기 입출력 버퍼부는,
    각각이 상기 복수의 매트릭스들 각각으로부터 전송되는 데이터를 저장하도록 구성되는 복수의 버퍼 메모리들; 및
    상기 복수의 버퍼 메모리들로부터 전송되는 데이터를 순차적으로 출력시키는 선택 출력부를 포함하는 메모리 장치.
  7. 제6항에 있어서,
    상기 복수의 버퍼 메모리들 각각은, 상기 제1 동작 모드에서 상기 복수의 매트릭스들 각각으로부터 전송되는 1비트 데이터를 저장하도록 구성되고, 상기 제2 동작 모드에서 상기 복수의 매트릭스들 각각으로부터 전송되는 "N"비트 데이터를 저장하도록 구성되며,
    상기 복수의 버퍼 메모리들은, 상기 제1 동작모드에서 "K"비트 데이터를 출력시키도록 구성되고, 상기 제2 동작 모드에서 (K*N)비트 데이터를 출력시키도록 구성되는 메모리 장치.
  8. 제7항에 있어서,
    상기 복수의 버퍼 메모리들은, 상기 복수의 버퍼 메모리들로의 데이터 입력 및 상기 복수의 버퍼 메모리들로부터의 데이터 출력이 병렬로 수행되도록 구성되는 메모리 장치.
  9. 제7항에 있어서,
    상기 선택 출력부는, 상기 복수의 버퍼 메모리들 각각에 대응되는 복수의 입력단자들을 갖되, 상기 복수의 입력단자들 각각은, 상기 "N"개의 컬럼들 각각에 대응되는 "N"개의 섭-입력단자들을 갖는 메모리 장치.
  10. 제9항에 있어서, 상기 선택 출력부는,
    상기 제1 동작 모드에서 제1 모드 제어 신호를 입력받고, 상기 제2 동작 모드에서 제2 모드 제어 신호 및 상기 컬럼 어드레스를 입력받도록 구성되고,
    상기 제1 모드 제어 신호에 응답하여 상기 복수의 입력단자들 각각으로 입력되는 1비트의 데이터를 순차적으로 출력시키도록 구성되며, 그리고
    상기 제2 모드 제어 신호에 응답하여 상기 복수의 입력단자들 각각의 N"개의 섭-입력단자들 중 상기 컬럼 어드레스에 의해 선택되는 선택 컬럼에 대응하는 섭-입력단자로 전송되는 데이터를 출력시키도록 구성되는 메모리 장치.
  11. 제1항에 있어서,
    상기 외부 버스의 대역 폭은, 상기 제1 동작 모드에서 상기 제1 내부 데이터 전송 라인이 사용되는 대역 폭과 동일한 메모리 장치.
  12. 복수의 뱅크들;
    외부 버스를 통해 데이터 입출력을 수행하는 데이터 입출력부;
    상기 복수의 뱅크들 및 상기 데이터 입출력 단자 사이에 배치되어 데이터 전송 경로를 제공하는 글로벌 데이터 전송 라인;
    상기 복수의 뱅크들로부터 상기 글로벌 데이터 전송 라인을 통해 전송되는 데이터를 저장하는 입출력 버퍼부; 및
    상기 글로벌 데이터 전송 라인 및 상기 입출력 버퍼부 사이의 데이터 전송 경로를 제공하는 제1 내부 데이터 전송 라인을 포함하되,
    상기 복수의 뱅크들 각각으로부터 상기 글로벌 데이터 전송 라인으로의 데이터 전송은, 상기 외부 버스의 대역 폭과 동일한 제1 대역 폭으로 수행되도록 구성되고, 그리고
    상기 제1 내부 데이터 전송 라인은, 상기 제1 대역 폭에 상기 뱅크들의 개수를 곱한 수치와 동일한 제2 대역폭을 갖는 메모리 장치.
  13. 제12항에 있어서,
    상기 복수의 뱅크들은, 액티브 커맨드에 응답하여 로우 어드레스에 의해 선택되는 선택 로우의 데이터 중 컬럼 어드레스에 의해 선택되는 선택 컬럼의 데이터를 상기 입출력 버퍼부에 전송하도록 구성되는 메모리 장치.
  14. 제13항에 있어서,
    상기 입출력 버퍼부는, 리드 커맨드에 응답하여, 상기 뱅크 어드레스에 의해 선택되는 뱅크의 데이터를 출력시키도록 구성되는 메모리 장치.
  15. 데이터가 저장되는 메모리 영역과, 상기 메모리 영역으로부터 전송되는 데이터를 저장하는 입출력 버퍼부를 갖는 메모리 장치; 및
    상기 메모리 장치의 리드 동작을 제어하는 메모리 컨트롤러를 포함하되,
    상기 메모리 장치는, 상기 메모리 컨트롤러로부터 전송되는 외부 커맨드에 응답하여 로우 어드레스에 의해 선택되는 상기 메모리 영역의 선택 로우의 모든 컬럼들의 데이터를 상기 입출력 버퍼부에 저장시키고, 상기 입출력 버퍼부에 저장된 데이터 중 컬럼 어드레스에 의해 선택되는 선택 컬럼의 데이터가 출력되도록 구성되고, 그리고
    상기 메모리 컨트롤러는, 상기 메모리 장치의 리드 동작을 제어하는 리드 요청들이 동일한 로우 어드레스를 갖는 리드 요청들이 연속적으로 수행되도록 스케줄링을 수행하도록 구성되는 메모리 시스템.
  16. 제15항에 있어서, 상기 메모리 컨트롤러는,
    상기 리드 요청들을 저장하는 리드 큐; 및
    상기 리드 큐에서 상기 리드 요청들의 출력 순서를 조정하는 스케줄러를 포함하는 메모리 시스템.
  17. 제16항에 있어서,
    상기 스케줄러는, 상기 리드 큐에 저장된 리드 요청들 중 가장 먼저 출력될 예정이거나 현재 실행중인 제1 리드 요청의 제1 로우 어드레스와, 상기 제1 리드 요청 다음에 출력될 예정인 제2 리드 요청의 제2 로우 어드레스가 동일한 경우, 상기 제2 리드 요청의 출력 순서를 유지시키는 스케줄링을 수행하도록 구성되는 메모리 시스템.
  18. 제16항에 있어서,
    상기 스케줄러는, 상기 리드 큐에 저장된 리드 요청들 중 가장 먼저 출력될 예정이거나 현재 실행중인 제1 리드 요청의 제1 로우 어드레스와, 상기 제1 리드 요청 다음에 출력될 예정인 제2 리드 요청의 제2 로우 어드레스가 동일하지 않고, 상기 제1 로우 어드레스와, 상기 제2 리드 요청 다음에 출력될 예정인 제3 리드 요청의 제3 로우 어드레스가 동일하지 않은 경우, 상기 제3 리드 요청의 출력 순서를 유지시키는 스케줄링을 수행하도록 구성되는 메모리 시스템.
  19. 제18항에 있어서,
    상기 스케줄러는, 상기 제2 리드 요청 다음에 출력될 예정인 제3 리드 요청의 제3 로우 어드레스가 상기 제1 로우 어드레스와 동일한 경우, 상기 제2 리드 요청과 제3 리드 요청의 출력 순서를 바꾸는 스케줄링을 수행하도록 구성되는 메모리 시스템.
  20. 복수의 뱅크들과, 상기 복수의 뱅크들로부터 전송되는 데이터를 저장하는 입출력 버퍼부를 갖는 메모리 장치; 및
    상기 메모리 장치의 리드 동작을 제어하는 메모리 컨트롤러를 포함하되,
    상기 메모리 장치는, 상기 메모리 컨트롤러로부터 전송되는 외부 커맨드에 응답하여 로우 어드레스에 의해 선택되는 상기 모든 뱅크들의 선택 로우의 데이터 중 컬럼 어드레스에 의해 선택되는 선택 컬럼의 데이터를 상기 입출력 버퍼부에 저장시키고, 상기 입출력 버퍼부에 저장된 데이터 중 뱅크 어드레스에 의해 선택되는 선택 뱅크의 데이터가 출력되도록 구성되고, 그리고
    상기 메모리 컨트롤러는, 상기 메모리 장치의 리드 동작을 제어하는 리드 요청들이 동일한 로우 어드레스 및 동일한 컬럼 어드레스를 갖는 리드 요청들이 연속적으로 수행되도록 스케줄링을 수행하도록 구성되는 메모리 시스템.
  21. 제20항에 있어서, 상기 메모리 컨트롤러는,
    상기 리드 요청들을 저장하는 리드 큐; 및
    상기 리드 큐에서 상기 리드 요청들의 출력 순서를 조정하는 스케줄러를 포함하는 메모리 시스템.
  22. 제21항에 있어서,
    상기 스케줄러는, 상기 리드 큐에 저장된 리드 요청들 중 가장 먼저 출력될 예정이거나 현재 실행중인 제1 리드 요청과, 상기 제1 리드 요청 다음에 출력될 제2 리드 요청의 로우 어드레스 및 컬럼 어드레스가 동일한 경우, 상기 제2 리드 요청의 출력 순서를 유지시키는 스케줄링을 수행하도록 구성되는 메모리 시스템.
  23. 제21항에 있어서,
    상기 스케줄러는, 상기 리드 큐에 저장된 리드 요청들 중 가장 먼저 출력될 예정이거나 현재 실행중인 제1 리드 요청과 상기 제1 리드 요청 다음에 출력될 예정인 제2 리드 요청의 로우 어드레스는 동일하지만 컬럼 어드레스가 동일하지 않고, 상기 제1 리드 요청과 상기 제2 리드 요청 다음에 출력될 예정인 제3 리드 요청의 로우 어드레스는 동일하지만 컬럼 어드레스는 동일하지 않은 경우, 상기 제3 리드 요청의 출력 순서를 유지시키는 스케줄링을 수행하도록 구성되는 메모리 시스템.
  24. 제23항에 있어서,
    상기 스케줄러는, 상기 제1 리드 요청과 상기 제3 리드 요청의 로우 어드레스 및 컬럼 어드레스가 모두 동일한 경우, 상기 제2 리드 요청과 제3 리드 요청의 출력 순서를 바꾸는 스케줄링을 수행하도록 구성되는 메모리 시스템.
KR1020200072577A 2020-06-15 2020-06-15 메모리 장치 및 이를 포함하는 메모리 시스템 KR20210155270A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200072577A KR20210155270A (ko) 2020-06-15 2020-06-15 메모리 장치 및 이를 포함하는 메모리 시스템
US17/151,496 US11468924B2 (en) 2020-06-15 2021-01-18 Memory devices operating at high speed and memory systems with the memory devices operating at high speed
CN202110270685.1A CN113808629A (zh) 2020-06-15 2021-03-12 存储器件和具有存储器件的存储系统
US17/902,562 US11894096B2 (en) 2020-06-15 2022-09-02 Memory systems for high speed scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200072577A KR20210155270A (ko) 2020-06-15 2020-06-15 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20210155270A true KR20210155270A (ko) 2021-12-22

Family

ID=78826581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200072577A KR20210155270A (ko) 2020-06-15 2020-06-15 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (2) US11468924B2 (ko)
KR (1) KR20210155270A (ko)
CN (1) CN113808629A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102545175B1 (ko) * 2022-05-02 2023-06-20 삼성전자주식회사 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530955A (en) * 1991-04-01 1996-06-25 Matsushita Electric Industrial Co., Ltd. Page memory device capable of short cycle access of different pages by a plurality of data processors
JP3189727B2 (ja) * 1997-04-15 2001-07-16 日本電気株式会社 コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
KR101097471B1 (ko) 2008-12-26 2011-12-23 주식회사 하이닉스반도체 비휘발성 메모리 장치
US9773531B2 (en) * 2012-06-08 2017-09-26 Hewlett Packard Enterprise Development Lp Accessing memory
KR20170030900A (ko) 2015-09-10 2017-03-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20170075359A (ko) 2015-12-23 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 콘트롤러의 동작 방법
KR20190006314A (ko) * 2017-07-10 2019-01-18 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102545175B1 (ko) * 2022-05-02 2023-06-20 삼성전자주식회사 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
US20220415371A1 (en) 2022-12-29
CN113808629A (zh) 2021-12-17
US11468924B2 (en) 2022-10-11
US20210390989A1 (en) 2021-12-16
US11894096B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
US7349277B2 (en) Method and system for reducing the peak current in refreshing dynamic random access memory devices
US6044032A (en) Addressing scheme for a double data rate SDRAM
US8422333B2 (en) Semiconductor memory device and access method thereof
US20070028027A1 (en) Memory device and method having separate write data and read data buses
US20030147298A1 (en) Synchronous semiconductor memory device allowing control of operation mode in accordance with operation conditions of a system
US7124260B2 (en) Modified persistent auto precharge command protocol system and method for memory devices
US7978534B2 (en) Memory device and method having programmable address configurations
JP4150718B2 (ja) 破壊読み出し型ランダム・アクセス・メモリ・システム
US9696941B1 (en) Memory system including memory buffer
US10846220B2 (en) Memory system and operation method thereof
US7596049B2 (en) Semiconductor memory device with a plurality of bank groups each having a plurality of banks sharing a global line group
US11355180B2 (en) Semiconductor devices and semiconductor systems including the same
US6925028B2 (en) DRAM with multiple virtual bank architecture for random row access
US11894096B2 (en) Memory systems for high speed scheduling
KR20190125836A (ko) 반도체 장치
KR20080069298A (ko) 반도체 메모리 장치 및 그의 동작 제어방법
EP1248267A2 (en) Semiconductor memory device and information processing system
US20230326511A1 (en) Semiconductor memory device and memory system including the same
US7617354B2 (en) Abbreviated burst data transfers for semiconductor memory
US6545932B1 (en) SDRAM and method for data accesses of SDRAM
KR100444703B1 (ko) 네트워크 상 높은 버스 효율을 갖는 메모리 장치 및 그동작 방법, 그리고 이를 포함하는 메모리 시스템
US7593283B2 (en) Semiconductor memory device
US10768859B1 (en) History-based memory control system and method
KR20200119669A (ko) 반도체장치
US20230077701A1 (en) Processing-in-memory(pim) device