KR101801901B1 - 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템 - Google Patents

데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR101801901B1
KR101801901B1 KR1020170054680A KR20170054680A KR101801901B1 KR 101801901 B1 KR101801901 B1 KR 101801901B1 KR 1020170054680 A KR1020170054680 A KR 1020170054680A KR 20170054680 A KR20170054680 A KR 20170054680A KR 101801901 B1 KR101801901 B1 KR 101801901B1
Authority
KR
South Korea
Prior art keywords
target
column selection
columns
memory
column
Prior art date
Application number
KR1020170054680A
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 KR1020170054680A priority Critical patent/KR101801901B1/ko
Application granted granted Critical
Publication of KR101801901B1 publication Critical patent/KR101801901B1/ko
Priority to US15/851,775 priority patent/US10691608B2/en
Priority to PCT/KR2018/004850 priority patent/WO2018199646A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0656Data buffering 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/005Transfer gates, i.e. gates coupling the sense amplifier output to data lines, I/O lines or global bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2209Concurrent read and write
    • 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/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

메모리 장치는 메모리 셀 어레이, 행 디코더, 다중 열 디코더, 게이팅 회로 및 입출력 데이터 구동 회로를 포함한다. 메모리 셀 어레이는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함한다. 행 디코더는 행 어드레스에 기초하여, 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생한다. 다중 열 디코더는 열 어드레스 및 열 선택 정보에 기초하여, 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생한다. 게이팅 회로는 다중 열 선택 신호에 기초하여 복수의 목표 열들을 한 번에 선택한다. 입출력 데이터 구동 회로는 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여, 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력한다.

Description

데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템{MEMORY DEVICE ACCESSED IN CONSIDERATION OF DATA LOCALITY AND ELECTRONIC SYSTEM INCLUDING THE SAME}
본 발명은 메모리 장치에 관한 것으로서, 더욱 상세하게는 구역성이 존재하는 다차원 배열 데이터를 저장하고 액세스할 수 있는 메모리 장치 및 상기 메모리 장치를 포함하는 전자 시스템에 관한 것이다.
멀티미디어 데이터는 시공간적으로 가까운 데이터 간에 연관성이 높아서 이들 데이터를 처리할 때 강한 구역성이 나타난다. 예를 들어, 카메라 센서로부터 획득된 영상 데이터를 처리할 때, 같은 프레임 또는 전후 프레임의 주변 화소 데이터를 필요로 하는 경우가 많다. 멀티미디어 데이터를 메모리 장치에 저장하기 위해 각 화소 위치에 메모리 주소를 맵핑하는 방식으로는 래스터 방식과 타일 방식이 있다. 래스터 방식에서는 한 프레임 내에서 수평 주사선 방향의 화소 데이터를 메모리 주소를 증가시키며 메모리 셀들에 순차적으로 저장하며, 타일 방식에서는 한 프레임을 다수의 타일로 나누고 하나의 타일의 화소 데이터를 우선적으로 메모리 주소가 인접하게 메모리 셀들에 순차적으로 저장한다.
멀티미디어 데이터를 생성, 처리 및 소비하는 과정에서, 고성능 저전력 동작을 위해 연속된 메모리 주소의 셀들에 화소 데이터를 기입/독출할 수 있도록 래스터 방식과 타일 방식 등을 적절히 선택할 수 있다. 이 때, 기존의 메모리 장치는 래스터 방식과 타일 방식 간의 전환 과정 등에서 비효율이 발생할 수 있다.
도 1은 행 디코더와 열 디코더를 포함하여 특정 메모리 주소의 셀들에 액세스하는 기존의 메모리 장치를 나타내는 블록도이다.
도 1을 참조하면, 메모리 장치(10)는 메모리 셀 어레이(20), 행 디코더(30), 열 디코더(40), 게이팅 회로(50) 및 입출력 데이터 구동 회로(60)를 포함한다.
메모리 셀 어레이(20)는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함한다. 메모리 장치(10)의 용량이 커지면서, 메모리 셀들을 2차원으로 배열하고 행 디코더(30) 및 열 디코더(40)를 통해 원하는 셀들에 선택적으로 데이터를 기입/독출하는 방식을 채택하고 있다.
목표 메모리 셀에 액세스하기 위해, 행 디코더(30)는 행 어드레스(RADDR0)에 기초하여 상기 목표 메모리 셀을 포함하는 행(R0)을 선택하기 위한 행 선택 신호(RSEL0)를 발생한다. 선택된 행(R0)에 포함되는 메모리 셀들이 게이팅 회로(50)와 연결된다. 메모리 셀 어레이(20)의 하나의 행(예를 들어, R0)은 한 페이지를 구성한다. 게이팅 회로(50)는 메모리 셀들을 감지하고 신호를 안정적으로 처리하기 위한 감지 증폭기를 더 포함할 수 있다.
열 디코더(40)는 열 어드레스(CADDR0)에 기초하여 선택된 행(R0)에서 상기 목표 메모리 셀을 포함하는 열(C0)(빗금 친 부분)을 선택하기 위한 열 선택 신호(CSEL0)를 발생한다. 선택된 행(R0)의 선택된 열(C0)에 포함되는 메모리 셀들이 게이팅 회로(50)를 통해 입출력 데이터 구동 회로(60)와 연결된다. 이에 따라, 선택된 열(C0)에 포함되는 상기 목표 메모리 셀에 액세스할 수 있다.
입출력 데이터 구동 회로(60)는 입력 데이터 구동 회로 및 출력 데이터 구동 회로를 포함한다. 상기 입력 데이터 구동 회로에서 수신된 입력 데이터는 게이팅 회로(50)를 통해 선택된 행(R0)의 선택된 열(C0)에 기입된다. 이 때, 데이터 마스크 신호(DMS0)에 기초하여 원하지 않는 입력 데이터가 메모리 셀 어레이(20)에 기입되는 것을 방지한다. 선택된 행(R0)의 선택된 열(C0)에 저장된 데이터는 게이팅 회로(50)를 통해 상기 출력 데이터 구동 회로로 전달되어 출력 데이터로 제공된다. 만약 입/출력 데이터의 크기보다 열(C0)의 크기가 작다면, 추가적으로 열(C0)과 열 어드레스가 인접한 열들에 순차적으로 액세스하여, 액세스된 열들의 크기의 합이 상기 입/출력 데이터의 크기와 일치하도록 하고 기입 또는 독출한다.
기존의 메모리 장치(10)에서는 행 디코더(30) 및 열 디코더(40)에 의해 선택된 연속적인 주소를 갖는 메모리 셀들만이 한 번에 액세스된다. 따라서 동일 행 또는 동일 페이지 내에 있는 메모리 셀들을 액세스하는 경우에도, 목표 메모리 셀들의 주소가 연속적이지 않으면 목표 메모리 셀들을 한 번에 액세스하지 못하거나 불필요한 메모리 셀들도 함께 액세스해야 하는 비효율이 발생할 수 있다.
본 발명의 일 목적은 연속적이지 않은 메모리 셀들에 한 번에 액세스하여 데이터 기입/독출 동작의 효율이 향상될 수 있는 메모리 장치를 제공하는 것이다.
본 발명의 다른 목적은 연속적이지 않은 메모리 셀들에 한 번에 액세스할 수 있는 메모리 장치를 포함하는 전자 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 메모리 장치는 메모리 셀 어레이, 행 디코더, 다중 열 디코더, 게이팅 회로 및 입출력 데이터 구동 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함한다. 상기 행 디코더는 행 어드레스에 기초하여, 상기 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생한다. 상기 다중 열 디코더는 열 어드레스 및 열 선택 정보에 기초하여, 상기 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생한다. 상기 게이팅 회로는 상기 다중 열 선택 신호에 기초하여 상기 복수의 목표 열들을 한 번에 선택한다. 상기 입출력 데이터 구동 회로는 상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여, 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력한다.
일 실시예에서, 상기 메모리 장치는 라인 디코더 및 제2 게이팅 회로를 더 포함할 수 있다. 상기 라인 디코더는 상기 열 어드레스에 기초하여, 상기 목표 행에 포함되고 두 개 이상의 열들을 각각 포함하는 복수의 라인들 중 하나의 목표 라인을 선택하기 위한 라인 선택 신호를 발생할 수 있다. 상기 제2 게이팅 회로는 상기 라인 선택 신호에 기초하여 상기 하나의 목표 라인을 선택할 수 있다. 상기 복수의 목표 열들은 상기 하나의 목표 라인에 포함될 수 있다.
일 실시예에서, 상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정될 수 있다. 상기 목표 행에 포함되는 상기 복수의 목표 열들의 가능한 조합을 상기 열 선택 모드에 대응시킬 수 있다.
일 실시예에서, 상기 목표 행에 저장된 데이터는 타일 방식으로 맵핑된 화소 데이터일 수 있다. 상기 열 선택 정보는 열 선택 파라미터에 기초하여 설정될 수 있다. 상기 열 선택 파라미터는 하나의 타일 내에 포함되는 복수의 화소들 중 상기 목표 열들에 대응하는 두 개의 가장자리 화소들에 대한 정보를 포함하고, 상기 두 개의 가장자리 화소들을 연결한 가상 선을 기준으로 한 상기 목표 열들의 위치를 나타내는 사이드 정보를 선택적으로 포함할 수 있다.
일 실시예에서, 상기 열 선택 정보는 상기 복수의 목표 열들에 대한 정보를 직접적으로 포함하는 열 선택 리스트의 형태로 제공될 수 있다.
일 실시예에서, 상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고, 모드 선택 신호가 조합된 열 선택 정보 리스트의 형태로 제공될 수 있다.
일 실시예에서, 상기 목표 행에 저장된 데이터는 2의 거듭제곱 개수의 타일을 이어 붙인 슈퍼 타일 방식으로 맵핑된 데이터일 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 메모리 장치는 제1 메모리 장치, 다중 열 디코더, 게이팅 회로 및 입출력 데이터 구동 회로를 포함한다. 상기 제1 메모리 장치는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스에 기초하여 상기 복수의 행들 중 목표 행을 선택하며, 열 어드레스에 기초하여 상기 목표 행에 포함되고 두 개 이상의 열들을 각각 포함하는 복수의 라인들 중 목표 라인을 선택한다. 상기 다중 열 디코더는 상기 열 어드레스 및 열 선택 정보에 기초하여, 상기 목표 라인에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생한다. 상기 게이팅 회로는 상기 다중 열 선택 신호에 기초하여 상기 목표 라인 내의 상기 복수의 목표 열들을 한 번에 선택한다. 상기 입출력 데이터 구동 회로는 상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여, 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력한다. 상기 입출력 데이터 구동 회로는 상기 데이터 마스크 신호 및 상기 다중 열 선택 신호에 기초하여 증강된 데이터 마스크 신호를 발생한다. 상기 제1 메모리 장치는 상기 증강된 데이터 마스크 신호에 기초하여, 상기 목표 라인 내의 상기 복수의 목표 열들을 제외한 선택되지 않은 열에 상기 입력 데이터의 기입을 방지한다.
일 실시예에서, 상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정될 수 있다. 상기 복수의 목표 열들의 가능한 조합을 상기 열 선택 모드에 대응시킬 수 있다.
일 실시예에서, 상기 목표 행에 저장된 데이터는 타일 방식으로 맵핑된 화소 데이터일 수 있다. 상기 열 선택 정보는 열 선택 파라미터에 기초하여 설정될 수 있다. 상기 열 선택 파라미터는 하나의 타일 내에 포함되는 복수의 화소들 중 상기 목표 열들에 대응하는 두 개의 가장자리 화소들에 대한 정보를 포함하고, 상기 두 개의 가장자리 화소들을 연결한 가상 선을 기준으로 한 상기 목표 열들의 위치를 나타내는 사이드 정보를 선택적으로 포함할 수 있다.
일 실시예에서, 상기 열 선택 정보는 상기 복수의 목표 열들에 대한 정보를 직접적으로 포함하는 열 선택 리스트의 형태로 제공될 수 있다.
일 실시예에서, 상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고, 모드 선택 신호가 조합된 열 선택 정보 리스트의 형태로 제공될 수 있다.
일 실시예에서, 상기 목표 행에 저장된 데이터는 2의 거듭제곱 개수의 타일을 이어 붙인 슈퍼 타일 방식으로 맵핑된 데이터일 수 있다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 전자 시스템은 메모리 장치 및 버스 마스터를 포함한다. 상기 메모리 장치는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스에 기초하여 상기 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생하고, 열 어드레스 및 열 선택 정보에 기초하여 상기 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생하고, 상기 다중 열 선택 신호에 기초하여 상기 복수의 목표 열들을 한 번에 선택하며, 상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력한다. 상기 버스 마스터는 버스를 통해 상기 메모리 장치와 연결되고, 상기 메모리 장치에 제공되는 상기 행 어드레스, 상기 열 어드레스 및 상기 열 선택 정보를 발생한다. 상기 버스 마스터는 메모리 관리 장치 및 열 선택 정보 생성기를 포함한다. 상기 메모리 관리 장치는 가상 주소 및 메모리 맵핑 정보에 기초하여, 물리 주소에 대응하는 상기 행 어드레스 및 상기 열 어드레스를 발생한다. 상기 열 선택 정보 생성기는 상기 메모리 맵핑 정보, 메모리 액세스 타입 정보 및 디폴트 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생한다.
일 실시예에서, 상기 메모리 맵핑 정보 및 상기 디폴트 메모리 액세스 타입 정보는 별도의 레지스터에 저장되거나 페이지 테이블에 저장될 수 있다.
일 실시예에서, 상기 열 선택 정보 생성기는 상기 메모리 액세스 타입 정보가 유효한 경우에, 상기 메모리 맵핑 정보 및 상기 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생하며, 상기 메모리 액세스 타입 정보가 유효하지 않은 경우에, 상기 메모리 맵핑 정보 및 상기 디폴트 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생할 수 있다.
일 실시예에서, 상기 버스 마스터는 제1 비교기, 선택기, 제2 비교기, 논리 게이트, 캐시 컨트롤러 및 캐시 메모리를 포함할 수 있다. 상기 제1 비교기는 상기 가상 주소 또는 상기 물리 주소의 태그와 캐시 엔트리에 저장된 태그를 비교하여 제1 비교 신호를 발생할 수 있다. 상기 선택기는 상기 메모리 액세스 타입 정보 및 상기 디폴트 메모리 액세스 타입 정보 중 하나를 선택할 수 있다. 상기 제2 비교기는 상기 선택기의 출력과 상기 캐시 엔트리의 보조 비트에 저장된 메모리 액세스 타입 정보를 비교하여 제2 비교 신호를 발생할 수 있다. 상기 논리 게이트는 상기 제1 비교 신호, 상기 제2 비교 신호 및 상기 캐시 엔트리에 저장된 플래그 비트 중 유효 비트가 유효한지 여부에 기초하여 캐시 히트 결과 신호를 발생할 수 있다. 상기 캐시 컨트롤러는 상기 메모리 액세스 타입에 따른 순서대로 오프셋을 증가시키며 상기 캐시 엔트리의 캐시라인에 데이터를 저장하고, 상기 메모리 액세스 타입과 상기 열 선택 정보를 상기 캐시 엔트리의 보조 비트에 저장할 수 있다. 상기 캐시 메모리는 상기 캐시 컨트롤러에 의해 제어되고 상기 캐시 엔트리에 보조 비트를 포함할 수 있다.
일 실시예에서, 상기 버스 마스터는 캐시 컨트롤러 및 캐시 메모리를 더 포함할 수 있다. 상기 캐시 컨트롤러는 상기 열 선택 정보에 기초하여 캐시라인의 복수의 캐시 열들 중 복수의 목표 캐시 열들을 한 번에 액세스할 수 있다. 상기 캐시 메모리는 상기 캐시 컨트롤러에 의해 제어되며 상기 복수의 목표 캐시 열들에 상기 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 캐시 열들에 저장된 데이터를 한 번에 상기 출력 데이터로서 출력할 수 있다.
일 실시예에서, 상기 캐시 컨트롤러는 상기 열 선택 정보를 분배하는 분배기를 더 포함할 수 있다. 상기 분배기에서 출력되는 상기 분배된 열 선택 정보에 기초하여 상기 캐시라인에 포함되는 상기 복수의 캐시 열들 중 상기 복수의 목표 캐시 열들을 한 번에 액세스할 수 있다.
상기와 같은 본 발명의 실시예들에 따른 메모리 장치는, 다중 열 디코더를 포함하여 구현되고, 열 선택 신호에 기초하여 복수의 목표 열들에 한 번에 액세스할 수 있다. 따라서, 멀티미디어 데이터와 같이 강한 구역성을 가지는 데이터를 처리하는 경우에 복수의 목표 열들에 한 번에 액세스할 수 있어, 메모리 액세스에 자유도가 생겨 메모리 장치 및 이를 포함하는 전자 시스템의 성능 및 효율이 향상될 수 있다.
도 1은 행 디코더와 열 디코더를 포함하여 특정 메모리 주소의 셀들에 액세스하는 기존의 메모리 장치를 나타내는 블록도이다.
도 2a, 2b 및 2c는 연속적이지 않은 메모리 셀들에 한 번에 액세스하는 본 발명의 실시예들에 따른 메모리 장치를 나타내는 블록도들이다.
도 3a, 3b, 3c, 3d, 4a, 4b, 5a, 5b, 5c, 5d 및 5e는 본 발명의 실시예들에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 6, 7a, 7b, 7c, 8a 및 8b는 본 발명의 실시예들에 다른 메모리 장치에서 사용되는 열 선택 정보의 구성을 설명하기 위한 도면들이다.
도 9는 본 발명의 실시예들에 따른 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도이다.
도 10a 및 10b는 도 9의 전자 시스템의 버스 마스터에 포함되는 컨트롤러의 예를 나타내는 블록도들이다.
도 11a, 11b 및 11c는 도 9의 전자 시스템의 버스 마스터에 포함되는 캐시 컨트롤러의 예를 나타내는 블록도들이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 예시된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
본 발명에서, 메모리의 셀들이나 열들이 "연속"이라는 것은 셀들이나 열들의 물리적 위치가 연속되어 있다는 뜻이 아니라 해당 셀들이나 열들의 주소가 연속이라는 것을 의미한다.
본 발명에서, "한 번에"는 하나의 명령 또는 요청을 수행하기 위한 일련의 조치에 대해 사용된다. 예를 들어 버스트 모드 메모리 입출력은 동시에 수행되지는 않지만 한 번에 수행된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2a, 2b 및 2c는 연속적이지 않은 메모리 셀들에 한 번에 액세스하는 본 발명의 실시예들에 따른 메모리 장치를 나타내는 블록도들이다.
도 2a를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 행 디코더(120), 다중 열 디코더(130), 게이팅 회로(140) 및 입출력 데이터 구동 회로(150)를 포함한다.
메모리 셀 어레이(110)는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함한다. 메모리 셀 어레이(110)의 하나의 행(예를 들어, TR)은 한 페이지를 구성한다.
행 디코더(120)는 행 어드레스(RADDR)에 기초하여, 상기 복수의 행들 중 목표 메모리 셀을 포함하는 목표 행(TR)을 선택하기 위한 행 선택 신호(RSEL)를 발생한다.
다중 열 디코더(130)는 열 어드레스(CADDR) 및 열 선택 정보(CSINF)에 기초하여, 목표 행(TR)에 포함되는 열들 중 상기 목표 메모리 셀을 포함하는 복수의 목표 열들(TC)(빗금 친 부분)을 한 번에 선택하기 위한 다중 열 선택 신호(MCSEL)를 발생한다. 이 때, 열 선택 정보(CSINF)에는 목표 열들(TC)의 주소가 연속이라는 제약이 없다. 다시 말하면, 목표 열들(TC)은(즉, 목표 열들(TC)의 주소는) 연속적이지 않을 수 있다.
일 실시예에서, 열 선택 정보(CSINF)는 미리 정의된 열 선택 테이블에 기초하여 설정될 수 있다. 다른 실시예에서, 열 선택 정보(CSINF)는 열 선택 파라미터에 기초하여 설정될 수 있다. 또 다른 실시예에서, 열 선택 정보(CSINF)는 열 선택 리스트 또는 열 선택 정보 리스트에 기초하여 설정될 수 있다. 열 선택 정보(CSINF)의 구체적인 구현 예에 대해서는 도 6 등을 참조하여 후술하도록 한다.
게이팅 회로(140)는 행 선택 신호(RSEL)에 기초하여 목표 행(TR)과 연결된다. 또한, 게이팅 회로(140)는 다중 열 선택 신호(MCSEL)에 기초하여 목표 행(TR)에 포함된 복수의 목표 열들(TC)을 선택하여 입출력 데이터 구동 회로(150)에 한 번에 연결한다. 예를 들어, 게이팅 회로(140)는 메모리 셀들을 감지하고 신호를 안정적으로 처리하기 위한 감지 증폭기를 더 포함할 수 있다.
입출력 데이터 구동 회로(150)는 다중 열 선택 신호(MCSEL) 및 데이터 마스크 신호(DMS)에 기초하여, 복수의 목표 열들(TC)에 입력 데이터(DIN)를 한 번에 기입하거나 복수의 목표 열들(TC)에 저장된 데이터를 한 번에 출력 데이터(DOUT)로서 출력한다. 예를 들어, 입출력 데이터 구동 회로(150)는 입력 데이터 구동 회로 및 출력 데이터 구동 회로를 포함할 수 있다.
데이터 기입 동작에서, 복수의 목표 열들(TC)은 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로(140)를 통해 상기 입력 데이터 구동 회로와 연결될 수 있다. 상기 입력 데이터 구동 회로에서 수신된 입력 데이터(DIN)는 열 데이터(CDIN) 단위로 게이팅 회로(140)에 제공될 수 있고, 복수의 목표 열들(TC)에 저장될 수 있다. 이 때, 데이터 마스크 신호(DMS)에 기초하여 원하지 않는 데이터가 메모리 셀 어레이(110)에 저장되는 것을 방지할 수 있다.
데이터 독출 동작에서, 복수의 목표 열들(TC)은 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로(140)를 통해 상기 출력 데이터 구동 회로와 연결될 수 있다. 목표 행(TR)에 저장된 페이지 데이터(또는 행 데이터)(RD)가 게이팅 회로(140)에 제공될 수 있고, 목표 행(TR)에 포함되는 복수의 목표 열들(TC)의 데이터가 열 데이터(CDOUT) 단위로 상기 출력 데이터 구동 회로에 제공될 수 있으며, 출력 데이터(DOUT)로서 출력될 수 있다.
일 실시예에서, 입출력 데이터(DIN 또는 DOUT)의 크기는 페이지 데이터(RD)의 크기보다 작거나 같을 수 있다. 예를 들어, 페이지 데이터(RD)의 크기는 P(P는 2 이상의 자연수)비트일 수 있고, 입출력 데이터(DIN 또는 DOUT)의 크기는 K(K는 P 이하의 자연수)비트일 수 있다.
일 실시예에서, 열 데이터(CDIN 또는 CDOUT)의 크기는 입출력 데이터(DIN 또는 DOUT)의 크기보다 작을 수 있다. 예를 들어, 열 데이터(CDIN 또는 CDOUT)의 크기는 C(C는 K보다 작은 자연수)비트일 수 있다. 이 경우, 하나의 입력 데이터(DIN)를 저장하거나 하나의 출력 데이터(DOUT)를 제공하기 위해 복수의 열들(예를 들어, K/C개의 열들)을 선택할 수 있으며, 이에 따라 입출력 데이터(DIN 또는 DOUT)는 하나의 화살표로 도시하고 열 데이터(CDIN 또는 CDOUT)는 복수의 화살표들로 도시하였다.
일 실시예에서, 본 발명의 메모리 장치(100)에서 설정된 하나의 열(예를 들어, 도 2a의 목표 행(TR)에 포함된 하나의 사각형)의 크기는 기존의 메모리 장치(10)에서 설정된 하나의 열(예를 들어, 도 1의 행(R0)에 포함된 하나의 사각형)의 크기보다 작을 수 있고 작을수록 불필요한 셀들을 액세스하는 비효율 발생을 줄일 수 있다.
한편, 도시하지는 않았지만, 행 어드레스(RADDR), 열 어드레스(CADDR), 열 선택 정보(CSINF) 및 데이터 마스크 신호(DMS)는 외부의 메모리 컨트롤러로부터 제공될 수 있다. 메모리 장치(100)와 메모리 컨트롤러는 메모리 시스템을 구성할 수 있다.
본 발명의 실시예들에 따른 메모리 장치(100)에서, 다중 열 디코더(130)는 열 어드레스(CADDR) 및 열 선택 정보(CSINF)에 기초하여 다중 열 선택 신호(MCSEL)를 발생할 수 있고, 게이팅 회로(140)는 다중 열 선택 신호(MCSEL)에 기초하여 연속적이지 않은 복수의 목표 열들(TC)을 한 번에 선택할 수 있다. 다시 말하면, 기존의 메모리 장치(10)와 비교하였을 때, 다중 열 디코더(130) 및 게이팅 회로(140)의 구조 및 동작이 변경될 수 있다. 그 결과로, 연속적이지 않은 메모리 셀들에 한 번에 액세스할 수 있어 메모리 장치(100)의 성능 및 효율이 향상될 수 있다.
도 2b를 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 행 디코더(220), 라인 디코더(230), 다중 열 디코더(240), 제1 게이팅 회로(250), 제2 게이팅 회로(260) 및 입출력 데이터 구동 회로(270)를 포함한다.
게이팅 회로가 두 단으로 형성되고 이에 따라 라인 디코더(230)를 더 포함하는 것을 제외하면, 도 2b의 메모리 장치(200)는 도 2a의 메모리 장치(100)와 유사한 구조를 가질 수 있다. 하나의 페이지의 크기(예를 들어, P비트)가 상대적으로 커서 다중 열 선택을 위한 게이팅 회로 구성에 배선 채널 공간 및 고속 신호 전달 등 물리적 제약이 발생하는 경우에, 도 2b에 도시된 것처럼 게이팅 회로를 두 단으로 구성할 수 있다. 제1 게이팅 회로(250)에 의해 선택되는 복수의 열들을 하나의 라인이라고 정의한다.
메모리 셀 어레이(210)는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함한다.
행 디코더(220)는 행 어드레스(RADDR)에 기초하여, 상기 복수의 행들 중 목표 메모리 셀을 포함하는 목표 행(TR)을 선택하기 위한 행 선택 신호(RSEL)를 발생한다.
라인 디코더(230)는 열 어드레스(CADDR)에 기초하여, 목표 행(TR)에 포함되는 복수의 라인들 중 상기 목표 메모리 셀을 포함하는 하나의 목표 라인(TL)을 선택하기 위한 라인 선택 신호(LSEL)를 발생한다. 상기 복수의 라인들 각각은 하나의 행에 포함되고 두 개 이상의 열들을 포함하도록 정의될 수 있다. 예를 들어, P비트의 하나의 페이지를 L(L은 P보다 작거나 같은 자연수)비트씩 균등하게 분할하여 각각을 하나의 라인으로 정의할 수 있다. 이 경우, 하나의 페이지에 P/L개의 라인들이 존재하며, 라인 디코더(230)는 열 어드레스(CADDR)의 상위 비트에 기초하여 라인 선택 신호(LSEL)를 발생할 수 있다.
다중 열 디코더(240)는 열 어드레스(CADDR) 및 열 선택 정보(CSINF)에 기초하여, 목표 행(TR)에 포함되고 하나의 목표 라인(TL)에 포함되는 열들 중 상기 목표 메모리 셀을 포함하고 연속적이지 않은 복수의 목표 열들(TC)(빗금 친 부분)을 한 번에 선택하기 위한 다중 열 선택 신호(MCSEL)를 발생한다.
제1 게이팅 회로(250)는 행 선택 신호(RSEL)에 기초하여 목표 행(TR)과 연결되고, 라인 선택 신호(LSEL)에 기초하여 하나의 목표 라인(TL)을 선택한다. 제2 게이팅 회로(260)는 다중 열 선택 신호(MCSEL)에 기초하여 하나의 목표 라인(TL)에 포함된 복수의 목표 열들(TC)을 선택한다. 예를 들어, 제1 게이팅 회로(250)는 메모리 셀들을 감지하고 신호를 안정적으로 처리하기 위한 감지 증폭기를 더 포함할 수 있다.
입출력 데이터 구동 회로(270)는 다중 열 선택 신호(MCSEL) 및 데이터 마스크 신호(DMS)에 기초하여, 복수의 목표 열들(TC)에 입력 데이터(DIN)를 한 번에 기입하거나 복수의 목표 열들(TC)에 저장된 데이터를 한 번에 출력 데이터(DOUT)로서 출력한다. 예를 들어, 입출력 데이터 구동 회로(270)는 입력 데이터 구동 회로 및 출력 데이터 구동 회로를 포함할 수 있다. 데이터 기입 동작에서, 복수의 목표 열들(TC)은 라인 선택 신호(LSEL)및 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로들(250, 260)을 통해 상기 입력 데이터 구동 회로와 연결될 수 있다. 데이터 독출 동작에서, 복수의 목표 열들(TC)은 라인 선택 신호(LSEL)및 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로들(250, 260)을 통해 상기 출력 데이터 구동 회로와 연결될 수 있다.
상술한 것처럼, 하나의 페이지는 하나 또는 복수 개의 라인을 포함할 수 있다. 일 실시예에서, 하나의 페이지가 하나의 라인으로 구성되는 경우에, 제1 게이팅 회로(250)는 바이패스 회로로 동작할 수 있고, 이 경우 도 2b의 메모리 장치(200)는 도 2a의 메모리 장치(100)와 실질적으로 동일하게 동작할 수 있다. 다른 실시예에서, 항상 라인 내의 열들을 모두 선택하도록 구현되는 경우에, 제2 게이팅 회로(260)는 바이패스 회로로 동작할 수 있고, 이 경우 라인 디코더(230)는 기존의 메모리 장치(10)에 포함되는 열 디코더(40)와 실질적으로 동일하게 동작할 수 있다.
본 발명의 실시예들에 따른 메모리 장치(200)에서, 라인 디코더(230)는 열 어드레스(CADDR)에 기초하여 라인 선택 신호(LSEL)를 발생할 수 있고, 제1 게이팅 회로(250)는 라인 선택 신호(LSEL)에 기초하여 하나의 목표 라인(TL)을 선택할 수 있으며, 다중 열 디코더(240) 및 제2 게이팅 회로(260)는 도 2a의 다중 열 디코더(130) 및 게이팅 회로(140)와 각각 실질적으로 동일할 수 있다. 다시 말하면, 기존의 메모리 장치(10)와 비교하였을 때, 다중 열 디코더(240) 및 제2 게이팅 회로(260)를 더 포함하여 구현될 수 있다. 따라서, 연속적이지 않은 메모리 셀들에 한 번에 액세스할 수 있어 메모리 장치(200)의 성능 및 효율이 향상될 수 있다.
도 2b의 실시예에서, 하나의 라인의 크기를 증가시키면, 열 선택의 자유도가 커져서 한 페이지 내에서 메모리 주소가 연속적이지 않은 셀들에 액세스하려고 할 때 한 번에 액세스하지 못하는 경우를 줄일 수 있다.
도 2c를 참조하면, 메모리 장치(300)는 제1 메모리 장치(11) 및 부가 회로(301)를 포함한다. 부가 회로(301)는 다중 열 디코더(310), 게이팅 회로(320) 및 입출력 데이터 구동 회로(330)를 포함한다.
제1 메모리 장치(11)는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스(RADDR)에 기초하여 상기 복수의 행들 중 목표 메모리 셀을 포함하는 목표 행을 선택하며, 열 어드레스(CADDR)에 기초하여 상기 목표 행에 포함되는 복수의 라인들 중 상기 목표 메모리 셀을 포함하는 목표 라인을 선택한다.
제1 메모리 장치(11)는 도 1의 기존의 메모리 장치(10)와 실질적으로 동일할 수 있다. 예를 들어, 제1 메모리 장치(11)는 메모리 셀 어레이, 행 디코더, 라인 디코더, 게이팅 회로 및 입출력 데이터 구동 회로를 포함할 수 있다. 기존의 메모리 장치(10)에서의 하나의 열(예를 들어, 도 1의 C0)을 본 발명의 실시예들에 따른 메모리 장치에서의 하나의 라인(예를 들어, 도 2b의 TL)으로 간주하면, 기존의 메모리 장치(10)의 열 디코더는 제1 메모리 장치(11)의 라인 디코더 역할을 할 수 있다.
또한, 제1 메모리 장치(11)가 도 2b의 라인 디코더(230) 및 제1 게이팅 회로(250)까지 포함하는 것으로 생각할 수 있다. 이에 따라, 제1 메모리 장치(11)에 다중 열 디코더(310), 게이팅 회로(320) 및 입출력 데이터 구동 회로(330)를 부가하면, 도 2c의 메모리 장치(300)는 도 2b의 메모리 장치(200)와 실질적으로 동일하게 동작할 수 있다.
다중 열 디코더(310)는 열 어드레스(CADDR) 및 열 선택 정보(CSINF)에 기초하여, 상기 목표 라인에 포함되는 열들 중 상기 목표 메모리 셀을 포함하고 연속적이지 않은 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호(MCSEL)를 발생한다.
게이팅 회로(320)는 다중 열 선택 신호(MCSEL)에 기초하여 상기 목표 라인 내의 상기 복수의 목표 열들을 선택한다. 도 2a 및 2b의 게이팅 회로(140, 250)와 다르게, 게이팅 회로(320)는 감지 증폭기를 포함하지 않을 수 있다.
입출력 데이터 구동 회로(330)는 다중 열 선택 신호(MCSEL) 및 데이터 마스크 신호(DMS)에 기초하여, 복수의 목표 열들(TC)에 입력 데이터(DIN)를 한 번에 기입하거나 복수의 목표 열들(TC)에 저장된 데이터를 한 번에 출력 데이터(DOUT)로서 출력한다. 입출력 데이터 구동 회로(330)는 입력 데이터 구동 회로 및 출력 데이터 구동 회로를 포함할 수 있다.
데이터 기입 동작에서, 상기 목표 라인에 포함되는 상기 복수의 목표 열들은 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로(320)를 통해 상기 입력 데이터 구동 회로와 연결될 수 있다. 상기 입력 데이터 구동 회로에서 수신된 입력 데이터(DIN)는 열 데이터(CDIN) 단위로 게이팅 회로(320)에 제공될 수 있고, 게이팅 회로(320)에서 제공된 데이터(DI)는 제1 메모리 장치(11) 내의 상기 목표 라인에 포함되는 상기 복수의 목표 열들에 저장될 수 있다. 이 때, 상기 입력 데이터 구동 회로는 데이터 마스크 신호(DMS) 및 다중 열 선택 신호(MCSEL)에 기초하여 증강된 데이터 마스크 신호(DMS')를 발생할 수 있으며, 제1 메모리 장치(11)는 증강된 데이터 마스크 신호(DMS')에 기초하여 상기 목표 라인 내의 상기 복수의 목표 열들을 제외한 선택되지 않은 열에 데이터가 저장되는 것을 방지할 수 있다.
데이터 독출 동작에서, 제1 메모리 장치(11)는 상기 목표 라인에 대응하는 데이터(DO)를 제공할 수 있고, 상기 목표 라인에 포함되는 상기 복수의 목표 열들은 다중 열 선택 신호(MCSEL)에 기초하여 게이팅 회로(320)를 통해 상기 출력 데이터 구동 회로와 연결될 수 있다. 데이터(DO) 중 상기 복수의 목표 열들의 데이터가 열 데이터(CDOUT) 단위로 상기 출력 데이터 구동 회로에 제공될 수 있으며, 출력 데이터(DOUT)로서 출력될 수 있다.
본 발명의 실시예들에 따른 메모리 장치(300)에서, 다중 열 디코더(310) 및 게이팅 회로(320)는 도 2a의 다중 열 디코더(130) 및 게이팅 회로(140)와 각각 실질적으로 동일할 수 있고, 도 2b의 다중 열 디코더(240) 및 제2 게이팅 회로(260)와 각각 실질적으로 동일할 수 있다. 다시 말하면, 기존의 메모리 장치(10)와 비교하였을 때, 다중 열 디코더(310) 및 게이팅 회로(320)를 더 포함하여 구현될 수 있다. 따라서, 연속적이지 않은 메모리 셀들에 한 번에 액세스할 수 있어 메모리 장치(300)의 성능 및 효율이 향상될 수 있다.
도 3a, 3b, 3c, 3d, 4a, 4b, 5a, 5b, 5c, 5d 및 5e는 본 발명의 실시예들에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
먼저, 도 3a, 3b, 3c 및 3d는 멀티미디어 데이터의 다양한 메모리 주소 맵핑 방식을 나타내는 도면들이다. 도 3a, 3b, 3c 및 3d에서, 하나의 화소를 가장 작은 하나의 정사각형으로 도시하고, 한 프레임의 화면은 18*6개의 화소들을 포함하는 굵은 실선의 직사각형으로 도시하였다. 화소 데이터 크기는 32 비트 워드를 가정하여 각 화소 위치에 대응하는 메모리 주소는 워드 단위로 증가하고, 알파벳 w 뒤에 16진수로 메모리 주소를 표기하였다. 대각선 빗금 친 사각형은 메모리 주소 공간을 차지하지만 실재하지 않는 가상의 화소를 나타낸다.
도 3a를 참조하면, 한 프레임의 화면에 대한 타일 방식의 메모리 주소 맵핑을 나타낸다. 도 3a에서, 하나의 타일은 4*4개의 화소들을 포함하는 가는 실선의 정사각형으로 도시하였다. 하나의 타일 내의 화소들이 메모리 주소 공간 상에 인접하게 맵핑되므로, 화소 데이터의 구역성을 고려하여 데이터를 처리할 때 메모리를 효율적으로 액세스할 수 있다. 다만, 타일 내에서도 메모리 주소 매핑에 방향성이 존재하므로 특정 방향으로 인접한 화소를 처리할 때 메모리 액세스 효율이 상대적으로 낮아질 수 있다. 가상 화소가 존재하므로 메모리 사용에 낭비가 있으나 각 화소의 메모리 주소 계산이 용이해 진다는 장점이 있다. 도 3a의 예에서, 메모리 주소의 최하위 2비트가 각 화소의 타일 내의 가로 위치를 나타내고, 다음 2비트가 세로 위치, 그리고 다음 상위 비트들이 타일의 위치를 나타낸다.
도 3b를 참조하면, 한 프레임의 화면에 대한 래스터 방식의 메모리 주소 맵핑을 나타낸다. 수평 주사선 방향으로 각 화소에 메모리 주소를 순차적으로 증가시키며 매핑되므로, 수평 주사선 방향으로 화소 데이터가 순차적으로 생성 소비될 때 메모리 액세스 효율이 높아진다. 가상 화소가 없으므로 메모리 사용에 낭비가 없는 반면에, 특정 위치의 화소 데이터를 읽기 위해 메모리 주소를 구할 때 계산이 복잡해질 수 있다.
도 3c를 참조하면, 한 프레임의 화면에 대한 래스터 방식의 메모리 주소 맵핑을 나타낸다. 수평 방향 선두 화소의 주소 계산을 용이하게 하기 위해 가상 화소가 사용되므로, 메모리 사용에 낭비를 감수하게 된다. 이로써 타일 방식과 비교할 때 메모리 사용에서 낭비되는 정도 차이가 줄어들게 된다.
도 3d를 참조하면, 한 프레임의 화면에 대한 슈퍼 타일 방식의 메모리 주소 맵핑을 나타낸다. 슈퍼 타일은 2의 거듭제곱 개수의 타일을 수평 방향으로 이어 붙인 것으로 정의할 수 있다. 도 3d에서, 하나의 타일은 4*4개의 화소들을 포함하는 것으로 정의하였으며, 두 개의 타일을 수평 방향으로 이어 붙인 슈퍼 타일을 가는 실선의 직사각형으로 도시하였다.
슈퍼 타일 내에 수평 방향의 화소 개수가 증가함에 따라 수평 주사선 방향으로 화소 데이터가 순차적으로 생성 소비 될 때, 메모리 액세스 효율이 타일 방식 대비 개선될 수 있다. 반면 구역성이 강한 데이터 처리를 위해 메모리 액세스할 때는 타일 방식 대비 다소 불리해질 수 있다. 한편, 타일 방식과 같은 정도로 메모리 사용상 낭비가 있고, 같은 정도로 각 화소의 메모리 주소 계산이 용이해진다. 도 3d의 예에서, 메모리 주소의 최하위 3비트가 각 화소의 슈퍼 타일 내의 가로 위치를 나타내고, 다음 2비트가 세로 위치, 그리고 다음 상위 비트들이 슈퍼 타일의 위치를 나타낸다. 특히, 메모리 주소의 하위 3번째 비트를 5번째로 옮기면 타일 방식의 메모리 주소를 얻는다. 따라서 타일 방식과 슈퍼 타일 방식간의 메모리 주소 변환이 용이할 수 있다.
슈퍼 타일 방식의 메모리 주소 맵핑은 3차 이상의 다차원 데이터에 적용할 수 있다. 예를 들어, 도 3d에서 메모리 주소의 하위 5번째 비트가 3번째 차원을 나타내는 인덱스라고 할 수 있다. 3번째 차원이 높이가 될 수도 있고 시간이 될 수도 있다.
도 4a 및 4b는 멀티미디어 데이터의 화소 데이터를 표기하는 방식을 예시하는 도면들이며, 상기 한 프레임의 화면에 대한 화소 데이터를 나타낸다.
도 4a를 참조하면, 타일 방식의 메모리 주소 맵핑에 기초한 화소 데이터의 넘버링을 나타낸다. 예를 들어, 도 3a에 도시된 각 화소 위치에 맵핑된 메모리 주소의 알파벳 w를 화소를 나타내는 p로 바꾸어 화소 데이터를 넘버링하고, 각 화소 위치에 화소 데이터를 표기하여 도 4a를 도시하였다. 향후 예시를 위해 첫 번째 수평 주사선에 해당하는 화소 데이터들을 볼드체로 강조하였다. 한편, 이러한 화소 데이터의 넘버링은 도 3b, 3c, 3d에 대해서도 동일하게 적용될 수 있다.
도 4b를 참조하면, 도 4a의 화면을 시계 방향으로 90도 회전하여 도 4b를 도시하였다. 향후 예시에서 회전된 화면의 이미지 처리를 위해 원본 데이터를 사용하는 경우를 다룰 것이므로, 원본 화소 데이터의 표기를 유지하였다. 또한 처음 두 수평 주사선에 해당하는 화소 데이터들을 볼드체로 강조하였다.
도 5a, 5b, 5c 및 5d는 도 4a의 화소 데이터가 메모리 장치에 저장되는 예들을 나타내는 도면들이고, 도 5e는 도 4b의 화소 데이터가 메모리 장치에 저장되는 예를 나타내는 도면이다. 도 5a, 5b, 5c, 5d 및 5e에서, 가장 작은 하나의 정사각형의 크기를 하나의 워드로 설정하여, 하나의 정사각형에 하나의 화소 데이터를 저장하는 것으로 도시하였고 좌에서 우로 메모리 주소가 워드 단위로 증가한다. 도 4a와 도 4b에서 강조된 화소에 대응하여 마찬가지로 강조하였고, 도 3a, 3b, 3c 및 3d와 유사하게, 대각선 빗금 친 사각형은 가상의 화소 데이터를 나타낸다.
도 5a를 참조하면, 화소 데이터가 타일 방식의 메모리 주소 맵핑에 기초하여 메모리 장치에 저장된 것을 나타낸다. 도 4a에 도시된 첫 번째 수평주사선에 해당하는 화소 데이터(p00, p01, p02, p03, p10, p11, p12, p13, p20, p21, p22, p23, p30, p31, p32, p33, p40, p41)에 맵핑된 주소가 연속이 아니므로, 기존 메모리 장치(10)에서는 네 개의 화소씩 나누어 액세스하여야 하는 반면, 본 발명의 실시예들에 따른 메모리 장치에서는 라인 사이즈를 키워서 한 번에 액세스하는 화소 수를 증가시킬 수 있다. 즉, 라인 사이즈를 32워드로 하면 여덟 개의 화소를 한 번에 액세스할 수 있다.
도 5b 및 5c를 참조하면, 화소 데이터가 레스터 방식의 메모리 주소 맵핑에 기초하여 메모리 장치에 저장된 것을 나타낸다. 레스터 방식은 수평 주사선 방향의 화소 데이터 처리에 적합한 방식이므로, 기존 메모리 장치(10) 대비 본 발명의 실시예들에 따른 메모리 장치에서 성능 개선은 없다.
도 5d를 참조하면, 화소 데이터가 슈퍼 타일 방식의 메모리 주소 맵핑에 기초하여 메모리 장치에 저장된 것을 나타낸다. 두 개의 타일을 붙여서 슈퍼 타일을 만들었으므로, 여덟 개의 화소 데이터가 연속된 메모리 주소에 매핑되어 있는 것을 볼 수 있다. 즉, 라인 사이즈를 키우지 않아도 슈퍼 타일의 수평 사이즈를 키워서 한 번에 액세스하는 화소 수를 증가시킬 수 있다.
도 5e를 참조하면, 도 5a와 유사하게 화소 데이터가 타일 방식의 메모리 주소 맵핑에 기초하여 메모리 장치에 저장된 것을 나타내며, 특히 도 4b에 도시된 것처럼 시계 방향으로 회전된 화면을 기준으로 화소 데이터를 액세스하는 경우를 나타낸다. 도 4b에 도시된 처음 두 수평 주사선에 해당하는 화소 데이터(p11, p01, p04, p05, p08, p09, p0c, p0d, p50, p51, p54, p55)를 액세스할 때, 기존 메모리 장치(10)에서는 한 번에 두 개의 화소 데이터씩 여섯 번 액세스하여야 하는 반면, 본 발명의 실시예들에 따른 메모리 장치에서는 라인 사이즈가 16 워드일 때, 두 번에 액세스가 가능하다. 기존 메모리 장치(10)를 사용할 경우, 네 개의 수평 주사선에 해당하는 화소 데이터를 읽어서 내부 버퍼 메모리에 넣고 사용한다면 액세스 횟수를 줄일 수도 있다. 하지만, 화면 사이즈가 점점 커지는 추세에 있으므로 더 많은 내부 버퍼 메모리 용량을 필요로 하게 되고 이는 결국 비용 증가의 원인이 된다.
도 6, 7a, 7b, 7c, 8a 및 8b는 본 발명의 실시예들에 다른 메모리 장치에서 사용되는 열 선택 정보의 구성을 설명하기 위한 도면들이다.
도 6를 참조하면, 열 선택 정보(CSINF)를 선택하기 위한 열 선택 모드를 포함하는 열 선택 테이블을 나타낸다. 상기 열 선택 테이블은 미리 정의되어 다중 열 디코더에 저장되어 있을 수 있다. 도 6의 예에서, 하나의 라인이 여덟 개의 열들을 포함하는 것으로 도시하였다.
제1 모드(mode 00)는 디폴트 모드로 연속된 열들이 액세스되므로, 기존 메모리 장치(10)와 실질적으로 동일한 액세스 패턴을 가질 수 있다. 제2 모드(mode 10) 및 제3 모드(mode 11)는 본 발명의 실시예들에 따라 연속적이지 않은 메모리 셀들에 한 번에 액세스하기 위한 모드일 수 있다. 제2 모드(mode 10) 및 제3 모드(mode 11)에서는 상기 목표 행에 포함되는 상기 열들을 X(X는 2 이상의 자연수)개 단위로 그룹화한 복수의 열 그룹들 중에서 홀수번째 열 그룹들 또는 짝수번째 열 그룹들이 상기 복수의 목표 열들에 대응할 수 있다. 예를 들어, 제2 모드(mode 10)에서는 네 개의 열들을 그룹화하여 복수의 열 그룹들을 설정하고 홀수번째 열 그룹 또는 짝수번째 열 그룹이 액세스될 수 있다. 제3 모드(mode 11)에서는 두 개의 열들을 그룹화하여 복수의 열 그룹들을 설정하고 홀수번째 열 그룹들 또는 짝수번째 열 그룹들이 액세스될 수 있다. 예를 들어, 제3 모드(mode 11)는 도 2a 및 2b에 도시된 목표 열들(TC)에 한 번에 액세스하기 위한 모드일 수 있다.
각 모드마다 선택되는 열들이 두 개씩 정의 되어 있는데, 둘 중 어느 것을 선택할지는 메모리 장치에 전달되는 메모리 주소에 의해 결정할 수 있으므로, 굳이 모드를 나누지 않아도 된다.
도 6의 예에서, 열 선택 정보(CSINF)는 상대적으로 적은 비트 수를 갖는 모드 선택 신호의 형태로 제공될 수 있다. 예를 들어, 열 선택 정보(CSINF)는 제1 모드(mode 00), 제2 모드(mode 10) 및 제3 모드(mode 11)에서 각각 "00", "10" 및 "11"의 형태로 제공될 수 있다.
도 6에 도시된 상기 열 선택 테이블에 기초한 방법은, 원하는 열 선택 모드가 몇 가지로 정형화되어 있을 때 유용할 수 있다. 예를 들어, 도 5e에서와 같이 타일 방식으로 메모리 주소가 맵핑되어 있을 때, 회전된 화면 기준으로 화소 데이터를 액세스하는 경우가 이에 해당할 수 있다. 예를 들어, 원본 화면은 제1 모드(mode 00)로 액세스하고, 회전된 화면은 제3 모드(mode 11)로 액세스할 수 있다.
도 7a, 7b 및 7c는 열 선택 파라미터에 기초하여 열 선택 정보(CSINF)를 설정하는 예들을 나타낸다.
도 7a, 7b 및 7c를 참조하면, 목표 행에 저장된 데이터는 타일 방식으로 맵핑된 멀티미디어 데이터일 수 있다. 예를 들어, 메모리 셀들(MC1)에 저장된 데이터는 타일(T1)의 화소 데이터이고, 메모리 셀들(MC2)에 저장된 데이터는 타일(T2)의 화소 데이터이며, 메모리 셀들(MC3)에 저장된 데이터는 타일(T3)의 화소 데이터일 수 있다.
도 7a, 7b 및 7c의 예에서, 열 선택 정보(CSINF)는 열 선택 파라미터에 기초하여 설정될 수 있다. 상기 열 선택 파라미터는 하나의 타일 내에 포함되는 복수의 화소들 중 상기 목표 행에 포함되는 상기 목표 열들에 대응하는 두 개의 가장자리 화소들에 대한 정보 및 상기 두 개의 가장자리 화소들을 연결한 가상 선을 기준으로 한 상기 목표 열들의 위치를 나타내는 사이드 정보를 포함할 수 있다.
다시 말하면, 하나의 타일 내에서 선택하고자 하는 화소 데이터가 모두 포함되도록 가상의 선을 긋고, 상기 가상의 선을 기준으로 어느 한 사이드의 화소 데이터만 액세스할 수 있으며, 이 때 상기 가상의 선은 타일의 가장자리 두 화소로 정의할 수 있으므로, 타일의 가장자리 두 화소 정보와 사이드 정보를 파라미터로 전달할 수 있다. 상기 사이드 정보는 한 비트의 플래그로 나타낼 수 있는데, 예를 들어 "1"이면 위쪽 "0"이면 아래쪽으로 정의할 수 있다. 상기 가상의 선이 대각선이 아닌 수직선일 경우, "1"이면 왼쪽 "0"이면 오른쪽으로 정의할 수 있다.
도 7a는 가상의 선이 p04와 p0f에 해당하는 화소를 지날 때, 가상의 선의 하측의 화소 데이터를 액세스하는 경우를 나타내며, 이 때 열 선택 정보(CSINF)로서 (04, 0f, 0)의 열 선택 파라미터를 전달하면, 본 발명의 실시예들에 따른 메모리 장치 내부에서 (04, 0f, 0)의 열 선택 파라미터를 (04, 08, 09, 0a, 0c, 0d, 0e, 0f)의 열 선택 리스트를 구성하여 원하는 화소 데이터에 액세스할 수 있다.
도 7b는 가상의 선이 p01과 p0d에 해당하는 화소를 지날 때, 가상의 선의 좌측의 화소 데이터를 액세스하는 경우를 나타내며, 이 때 열 선택 정보(CSINF)로서 (01, 0d, 1)의 열 선택 파라미터를 전달하면, 본 발명의 실시예들에 따른 메모리 장치 내부에서 (01, 0d, 1)의 열 선택 파라미터를 (00, 01, 04, 05, 08, 09, 0c, 0d)의 열 선택 리스트를 구성하여 원하는 화소 데이터에 액세스할 수 있다. 도 7b의 예와 도 6의 제3 모드(mode 11)는 실질적으로 동일한 열 선택 정보를 제공할 수 있다.
도 7c는 가상의 선이 p01과 p07에 해당하는 화소를 지날 때, 가상의 선의 상측의 화소 데이터를 액세스하는 경우를 나타내며, 이 때 열 선택 정보(CSINF)로서 (01, 07, 1)의 열 선택 파라미터를 전달하면, 본 발명의 실시예들에 따른 메모리 장치 내부에서 (01, 07, 1)의 열 선택 파라미터를 (01, 02, 03, 07)의 열 선택 리스트를 구성하여 원하는 화소 데이터에 액세스할 수 있다.
일 실시예에서, 상기 열 선택 파라미터를 상기 열 선택 리스트로 변환하는 구성은 본 발명의 실시예들에 따른 메모리 장치의 다중 열 디코더에 포함될 수 있다. 일 실시예에서, 상기 사이드 정보를 본 발명의 실시예들에 따른 메모리 장치에 전달되는 메모리 주소로부터 계산하는 로직을 다중 열 디코더에 내장하는 경우에는, 타일의 가장자리 두 화소 정보만 파라미터로 전달할 수 있다.
도 8a를 참조하면, 본 발명의 실시예들에 따른 메모리 장치(410)와 메모리 컨트롤러(420)는 메모리 시스템(400)을 구성할 수 있다. 도 8a의 예에서, 열 선택 정보(CSINF)는 열 선택 리스트(CSLST)의 형태로 제공될 수 있다. 열 선택 리스트(CSLST)는 선택하고자 하는 상기 복수의 목표 열들에 대한 정보를 직접적으로 포함할 수 있다. 예를 들어, 메모리 장치(410)가 내장 되어 있는 경우와 같이 인터페이스의 핀 카운트에 제약이 심하지 않은 경우에는, 선택할 열들을 직접 리스트로 전달할 수 있다.
일 실시예에서, 선택 가능한 열들의 개수만큼 핀을 할당하여 각각의 열을 핀에 대응시키고, 선택할 열들에 대응하는 핀들만 "1"값을 설정할 수 있다. 다시 말하면, 열 선택 리스트(CSLST)는 복수의 열들에 대응하는 복수의 비트들을 포함할 수 있고, 각 비트는 "1"이면 선택 "0"이면 비선택으로 정의할 수 있다. 이 경우, 도 6의 제1 모드(mode 00)에 대해서는 "11111111"의 열 선택 리스트(CSLST)가 제공될 수 있고, 제2 모드(mode 10)에서는 "11110000"의 열 선택 리스트(CSLST)가 제공될 수 있으며, 제3 모드(mode 11)에서는 "11001100"의 열 선택 리스트(CSLST)가 제공될 수 있다.
한편, 도 8a의 예에서, 열 선택 리스트(CSLST)를 통해 선택할 열 전체의 정보가 전달되므로, 열 어드레스 대신에 라인 어드레스(LADDR)가 전달될 수 있다.
도 8b를 참조하면, 본 발명의 실시예들에 따른 메모리 장치(510)와 메모리 컨트롤러(520)는 메모리 시스템(500)을 구성할 수 있다. 도 8b의 예에서, 열 선택 정보(CSINF)는 열 선택 정보 리스트(CSINFLST)의 형태로 제공될 수 있다. 예를 들어, 하나의 라인을 복수의 서브라인으로 나누고 각 서브라인에 대해 미리 정의된 열 선택 테이블(예를 들어, 도 6의 열 선택 테이블)에 기초하여 열 선택 정보를 설정하면, 열 선택 정보 리스트(CSINFLST)는 모드 선택 신호가 조합된 형태를 가질 수 있다.
메모리 컨트롤러(520)는 스케쥴러(522) 및 메모리 액세스 버퍼(524)를 포함할 수 있다. 스케쥴러(522)에서 동일 행 주소를 갖고 메모리 장치(510)의 상기 서브라인을 도 2b의 라인(TL)으로 간주하는 액세스들을 모아서 메모리 장치(510)에 한 번에 액세스하는 경우를 나타낸다. 예를 들어, 상기 복수의 서브라인들 각각에 대한 열 선택 정보 리스트(CSINFLST)를 메모리 장치(510)에 전달할 수 있다. 예를 들어, 상기 복수의 서브라인들 중 제1 및 제2 서브라인들은 제2 모드(mode 10)와 같이 액세스되고 제3 및 제4 서브라인들은 제3 모드(mode 11)와 같이 액세스되는 경우에, "10", "10", "11", "11"의 열 선택 정보 리스트(CSINFLST)를 메모리 장치(510)에 전달할 수 있다.
도 9는 본 발명의 실시예들에 따른 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도이다.
도 9를 참조하면, 전자 시스템(600)은 메모리 장치(610) 및 시스템 온 칩(system-on-chip; SOC)(620)을 포함한다.
메모리 장치(610)는 본 발명의 실시예들에 따른 메모리 장치일 수 있다. 예를 들어, 메모리 장치(610)는 도 2a, 2b 및 2c의 메모리 장치들(100, 200, 300) 중 하나일 수 있으며, 다중 열 디코더를 포함할 수 있다. 메모리 장치(610)는 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스에 기초하여 상기 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생하고, 열 어드레스 및 열 선택 정보에 기초하여 상기 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생하고, 상기 다중 열 선택 신호에 기초하여 상기 복수의 목표 열들을 한 번에 선택하며, 상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력한다.
시스템 온 칩(620)은 버스(622), 메모리 컨트롤러(630) 및 버스 마스터(640)를 포함한다.
메모리 컨트롤러(630)는 메모리 장치(610)의 동작을 전반적으로 제어한다. 버스 마스터(640)는 버스(622) 및 메모리 컨트롤러(630)를 통해 메모리 장치(610)와 연결되며, 메모리 장치(610)에 대한 액세스를 제어한다. 메모리 장치(610)는 메인 메모리로서 사용될 수 있고, 버스 마스터(640)는 메모리 장치(610)에 제공되는 상기 행 어드레스, 상기 열 어드레스 및 상기 열 선택 정보를 발생한다.
버스 마스터(640)는 컨트롤러(650) 및 캐시 컨트롤러(660)를 포함할 수 있고, 캐시 메모리(670)를 더 포함할 수 있다. 컨트롤러(650)는 메모리 장치(610)에 대한 액세스를 전반적으로 제어할 수 있다. 캐시 컨트롤러(660)는 캐시 메모리(670)에 대한 액세스를 전반적으로 제어할 수 있다. 컨트롤러(650) 및 캐시 컨트롤러(660)의 구조 및 동작에 대해서는 도 10a 등을 참조하여 후술하도록 한다.
일 실시예에서, 버스 마스터(640)는 CPU(central processing unit), GPU(graphic processing unit) 등과 같이 시스템 온 칩(620) 내에 포함되고 메모리 장치(610)에 액세스할 수 있는 임의의 기능 장치(functional unit) 또는 IP(intellectual property)일 수 있다.
도 10a 및 10b는 도 9의 전자 시스템의 버스 마스터에 포함되는 컨트롤러의 예를 나타내는 블록도들이다.
도 10a를 참조하면, 컨트롤러(650a)는 메모리 관리 장치(memory management unit; MMU)(654a) 및 열 선택 정보 생성기(656)를 포함한다. 컨트롤러(650a)는 레지스터(658a)를 더 포함할 수 있다.
메모리 관리 장치(654a)는 가상 주소(VADDR) 및 메모리 맵핑 정보(MMINF)에 기초하여 물리 주소(PADDR)를 발생한다. 물리 주소(PADDR)는 도 9의 메모리 장치(610)에 제공되는 상기 행 어드레스 및 상기 열 어드레스를 포함할 수 있다. 메모리 관리 장치(654a)는 변환 색인 버퍼(translation lookaside buffer; TLB)(655a)를 포함할 수 있으며 페이지 테이블(652a)의 정보를 읽어서 변환 색인 버퍼(655a)에 저장하여 놓고 이용함으로써 어드레스 변환 속도를 향상시킬 수 있다. 예를 들어, 페이지 테이블(652a)은 별도의 저장 공간에 저장되어 있을 수 있다.
버스 마스터(640)는 실제 메모리 맵핑 방식과 다른 가상의 메모리 맵핑 방식을 가정하고 메모리 장치(610)에 액세스할 수 있다. 가상 메모리 맵핑을 사용하면 메모리 장치(610)에는 슈퍼 타일 방식으로 기록되어 있는 정보를 타일 방식으로 읽는 것과 같이 메모리 액세스에 자유도가 생겨 효율을 높일 수 있다. 물리 메모리 맵핑 방식과 가상 메모리 맵핑 방식이 상이하면 메모리 주소가 서로 달라서 맵핑 방식에 따라 적절한 주소 변환을 하여야 하고, 이 때 필요한 정보를 메모리 맵핑 정보(MMINF)라고 정의할 수 있다. 예를 들어, 메모리 맵핑 정보는 메모리 배정(allocation) 단계에서 결정될 수 있다.
열 선택 정보 생성기(656)는 가상 메모리 매핑 방식과 래스터 방식, 타일 방식, 회전 여부 등을 조합한 메모리 액세스 타입 정보(MAT)가 주어지면, 메모리 맵핑 정보(MMINF) 중 물리 메모리 매핑 방식에 기초하여 열 선택 정보(CSINF)를 발생할 수 있다. 메모리 액세스 타입 정보(MAT)가 않거나 유효하지 않는 경우에, 메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)에 기초하여 열 선택 정보(CSINF)를 발생할 수 있다.
레지스터(658a)는 메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)를 저장할 수 있다. 다시 말하면, 도 10a의 컨트롤러(650a)는 버스 마스터의 레지스터에 메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)를 저장하여 사용하는 경우를 나타낸다.
도 10b를 참조하면, 컨트롤러(650b)는 메모리 관리 장치(654b) 및 열 선택 정보 생성기(656b)를 포함한다.
메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)가 별도의 레지스터가 아닌 페이지 테이블(652b)에 저장되는 것을 제외하면, 도 10b의 컨트롤러(650b)는 도 10a의 컨트롤러(650a)와 실질적으로 동일할 수 있다. 다시 말하면, 도 10b의 컨트롤러(650b)는 해당 페이지 테이블에 메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)를 저장하여 사용하는 경우를 나타내며, 이 경우 레지스터(658a)는 생략될 수 있다. 메모리 맵핑 정보(MMINF) 및 디폴트 메모리 액세스 타입 정보(DMAT)는 메모리 관리 장치(654)의 변환 색인 버퍼(655b)를 통해 열 선택 정보 생성기(656)에 제공될 수 있다.
도 11a, 11b 및 11c는 도 9의 전자 시스템의 버스 마스터에 포함되는 캐시 컨트롤러의 예를 나타내는 블록도들이다.
도 11a를 참조하면, 캐시 컨트롤러(660a)는 제1 비교기(662a), 선택기(665), 제2 비교기(662b), 논리 게이트(664)를 포함할 수 있다. 함께 도시된 열 선택 정보 생성기(656) 및 페이지 테이블 엔트리(PTENT)는 도 9의 컨트롤러(650)에 포함되고 캐시 엔트리(CENT)는 도 9의 캐시 메모리(670)에 포함된다.
도 11a의 실시예에서, 캐시 컨트롤러(660a)는 메모리 액세스 타입에 따른 순서대로 오프셋을 증가시키며 캐시 엔트리(CENT)의 캐시라인에 데이터를 저장할 수 있다. 이 때, 적용된 메모리 액세스 타입은 캐시 히트 판정에 사용하기 위해 캐시 엔트리(CENT)의 보조 비트에 저장될 수 있고, 열 선택 정보 또한 라이트-백(write-back) 시에 사용하기 위해 상기 보조 비트에 저장될 수 있다. 메인 메모리(예를 들어, 도 9의 610)에 액세스하기 위해 필요한 가상 메모리 맵핑 방식에 맞춘 주소 변환 및 열 선택 정보는 도 9의 컨트롤러(650)가 생성할 수 있다.
제1 비교기(662a)는 메모리 주소(ADDR)의 태그와 캐시 엔트리(CENT)에 저장된 태그를 비교하여 제1 비교 신호(COMP1)를 발생할 수 있다. 예를 들어, 제1 비교 신호(COMP1)는 상기 메모리 주소(ADDR)의 태그가 캐시 엔트리(CENT)의 태그와 일치하는 경우에 "1"일 수 있고, 일치하지 않는 경우에 "0"일 수 있다.
메모리 주소(ADDR)는 태그, 인덱스 및 오프셋을 포함할 수 있고, 캐시 엔트리(CENT)는 태그, 캐시라인, 플래그 비트 및 보조 비트를 포함할 수 있다. 예를 들어, 메모리 주소(ADDR)는 도 10a 및 10b의 가상 주소(VADDR) 또는 물리 주소(PADDR)에 대응할 수 있다. 본 발명의 실시예에서, 캐시 엔트리(CENT)는 보조 비트를 더 포함할 수 있다. 상기 보조 비트는 메모리 액세스 타입 정보(DMAT) 및 열 선택 정보(CSINF)를 포함할 수 있다.
선택기(665)는 메모리 액세스 타입 정보(MAT)가 유효 하다면 메모리 액세스 타입 정보(DMAT)를 선택하고 유효하지 않으면 디폴트 메모리 액세스 타입 정보(DMAT)를 선택할 수 있다.
제2 비교기(662b)는 선택기(665)의 출력과 캐시 엔트리(CENT)에 저장된 보조 비트를 비교하여 제2 비교 신호(COMP2)를 발생할 수 있다. 예를 들어, 제2 비교 신호(COMP2)는 선택기에서 출력된 메모리 액세스 타입과 보조 비트에 저장된 메모리 액세스 타입이 동일한 경우에 "1"일 수 있고, 서로 다른 경우에 "0"일 수 있다.
논리 게이트(664)는 제1 비교 신호(COMP1), 제2 비교 신호(COMP2) 및 캐시 엔트리(CENT)에 저장된 플래그 비트 중 캐시라인에 유효한 데이터가 저장되어 있음을 나타내는 유효 비트(VLD)가 유효한지 여부에 기초하여 캐시 히트 결과 신호(HITR)를 발생할 수 있다. 예를 들어, 캐시 히트 결과 신호(HITR)는 제1 비교 신호(COMP1), 제2 비교 신호(COMP2) 및 유효 비트(VLD)가 모두 "1"인 경우에 캐시 히트를 나타내는 "1"일 수 있고, 그렇지 않은 경우에 캐시 미스를 나타내는 "0"일 수 있다.
종래의 캐시 컨트롤러와 비교하였을 때, 본 발명의 실시예에서는 메모리 액세스 타입 및 열 선택 정보를 포함하는 보조 비트를 사용하며, 이에 따라 캐시 컨트롤러(660a)가 선택기(665) 및 제2 비교기(662b)를 더 포함할 수 있다.
도 11b를 참조하면, 캐시 컨트롤러(660b)의 구성은 도 11a의 캐시 컨트롤러(660a)와 유사할 수 있으며, 다만, 보조 비트가 불필요함에 따라 선택기(665) 및 제2 비교기(662b)가 생략될 수 있다.
도 11b의 예에서는 캐시 메모리(670) 중 캐시라인에 대해 본 발명의 실시예들을 적용할 수 있다. 예를 들어, 열 선택 정보(CSINF)에 기초하여 캐시라인에 포함되는 캐시 열들 중 복수의 캐시 열을 선택하여 액세스 할 수 있다.
일 실시예에서, 캐시라인의 크기를 메인 메모리의 라인 크기와 같거나 그 배수가 되도록 설계할 수 있다. 이 경우, 생성된 열 선택 정보(CSINF)에 따라 메인 메모리(610)와 같은 방식으로 캐시라인 중 다중의 캐시 열들을 선택적으로 액세스할 수 있다. 메모리 액세스 타입과 열 선택 정보(CSINF)는 캐시라인에 액세스할 당시에 적용되므로, 향후 사용을 위해 저장할 필요가 없고 따라서 보조 비트가 필요 없게 된다.
도 11c를 참조하면, 캐시 컨트롤러(660c)의 구성은 도 11b의 캐시 컨트롤러(660b)와 유사할 수 있으며, 다만, 분배기(667)를 더 포함할 수 있다.
분배기(667)는 열 선택 정보 생성기(656)에서 출력되는 열 선택 정보(CSINF)를 분배하고 이에 맞추어 선택한 열들 중 하나와 일치하도록 오프셋을 증감하여 캐시 메모리(670)에 공급할 수 있다. 분배기(667)에서 출력되는 상기 분배된 열 선택 정보에 기초하여 캐시 메모리(670)에 포함되는 상기 복수의 캐시 열들 중 상기 복수의 목표 캐시 열들을 선택할 수 있다.
도 11c의 예에서는 메인 메모리의 라인 크기가 캐시라인 크기의 배수가 되는 경우를 나타내며, 열 선택 정보(CSINF)를 분배기(667)에서 배수에 맞추어 균등하게 나누어 캐시 메모리(670)에 순차적으로 공급하면서 캐시라인에 여러 번 나누어 액세스할 수 있다.
본 발명은 메모리 장치를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서 본 발명은 휴대폰, 스마트 폰, PDA, PMP, 디지털 카메라, 캠코더, PC, 서버 컴퓨터, 워크스테이션, 노트북, 디지털 TV, 셋-탑 박스, 음악 재생기, 휴대용 게임 콘솔, 네비게이션 기기, 웨어러블 기기, IoT 기기, VR 기기, AR 기기 등과 같은 다양한 전자 기기에 유용하게 이용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (19)

  1. 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    행 어드레스에 기초하여, 상기 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생하는 행 디코더;
    열 어드레스 및 열 선택 정보에 기초하여, 상기 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생하는 다중 열 디코더;
    상기 다중 열 선택 신호에 기초하여 상기 복수의 목표 열들을 한 번에 선택하는 게이팅 회로; 및
    상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여, 상기 게이팅 회로를 통해 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력하는 입출력 데이터 구동 회로를 포함하고,
    상기 목표 행에 포함되는 상기 복수의 목표 열들에 대응하는 상기 열 어드레스는 연속적이지 않은 메모리 장치.
  2. 제 1 항에 있어서,
    상기 열 어드레스에 기초하여, 상기 목표 행에 포함되고 두 개 이상의 열들을 각각 포함하는 복수의 라인들 중 하나의 목표 라인을 선택하기 위한 라인 선택 신호를 발생하는 라인 디코더; 및
    상기 라인 선택 신호에 기초하여 상기 하나의 목표 라인을 선택하는 제2 게이팅 회로를 더 포함하고,
    상기 복수의 목표 열들은 상기 하나의 목표 라인에 포함되는 것을 특징으로 하는 메모리 장치.
  3. 제 1 항에 있어서,
    상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고,
    상기 목표 행에 포함되는 상기 복수의 목표 열들의 가능한 조합을 상기 열 선택 모드에 대응시키는 것을 특징으로 하는 메모리 장치.
  4. 제 1 항에 있어서,
    상기 목표 행에 저장된 데이터는 타일 방식으로 맵핑된 화소 데이터이고,
    상기 열 선택 정보는 열 선택 파라미터에 기초하여 설정되며,
    상기 열 선택 파라미터는 하나의 타일 내에 포함되는 복수의 화소들 중 상기 목표 열들에 대응하는 두 개의 가장자리 화소들에 대한 정보를 포함하고, 상기 두 개의 가장자리 화소들을 연결한 가상 선을 기준으로 한 상기 목표 열들의 위치를 나타내는 사이드 정보를 선택적으로 포함하는 것을 특징으로 하는 메모리 장치.
  5. 제 1 항에 있어서,
    상기 열 선택 정보는 상기 복수의 목표 열들에 대한 정보를 직접적으로 포함하는 열 선택 리스트의 형태로 제공되는 것을 특징으로 하는 메모리 장치.
  6. 제 1 항에 있어서,
    상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고, 모드 선택 신호가 조합된 열 선택 정보 리스트의 형태로 제공되는 것을 특징으로 하는 메모리 장치.
  7. 제 1 항에 있어서,
    상기 목표 행에 저장된 데이터는 2의 거듭제곱 개수의 타일을 이어 붙인 슈퍼 타일 방식으로 맵핑된 데이터인 것을 특징으로 하는 메모리 장치.
  8. 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스에 기초하여 상기 복수의 행들 중 목표 행을 선택하며, 열 어드레스에 기초하여 상기 목표 행에 포함되고 두 개 이상의 열들을 각각 포함하는 복수의 라인들 중 목표 라인을 선택하는 제1 메모리 장치;
    상기 열 어드레스 및 열 선택 정보에 기초하여, 상기 목표 라인에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생하는 다중 열 디코더;
    상기 다중 열 선택 신호에 기초하여 상기 목표 라인 내의 상기 복수의 목표 열들을 한 번에 선택하는 게이팅 회로; 및
    상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여, 상기 게이팅 회로를 통해 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력하는 입출력 데이터 구동 회로를 포함하고,
    상기 목표 라인에 포함되는 상기 복수의 목표 열들에 대응하는 상기 열 어드레스는 연속적이지 않으며,
    상기 입출력 데이터 구동 회로는 상기 데이터 마스크 신호 및 상기 다중 열 선택 신호에 기초하여 증강된 데이터 마스크 신호를 발생하고,
    상기 제1 메모리 장치는 상기 증강된 데이터 마스크 신호에 기초하여, 상기 목표 라인 내의 상기 복수의 목표 열들을 제외한 선택되지 않은 열에 상기 입력 데이터의 기입을 방지하는 메모리 장치.
  9. 제 8 항에 있어서,
    상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고,
    상기 목표 행에 포함되는 상기 복수의 목표 열들의 가능한 조합을 상기 열 선택 모드에 대응시키는 것을 특징으로 하는 메모리 장치.
  10. 제 8 항에 있어서,
    상기 목표 행에 저장된 데이터는 타일 방식으로 맵핑된 화소 데이터이고,
    상기 열 선택 정보는 열 선택 파라미터에 기초하여 설정되며,
    상기 열 선택 파라미터는 하나의 타일 내에 포함되는 복수의 화소들 중 상기 목표 열들에 대응하는 두 개의 가장자리 화소들에 대한 정보를 포함하고, 상기 두 개의 가장자리 화소들을 연결한 가상 선을 기준으로 한 상기 목표 열들의 위치를 나타내는 사이드 정보를 선택적으로 포함하는 것을 특징으로 하는 메모리 장치.
  11. 제 8 항에 있어서,
    상기 열 선택 정보는 상기 복수의 목표 열들에 대한 정보를 직접적으로 포함하는 열 선택 리스트의 형태로 제공되는 것을 특징으로 하는 메모리 장치.
  12. 제 8 항에 있어서,
    상기 열 선택 정보는 미리 정의된 열 선택 모드에 기초하여 설정되고, 모드 선택 신호가 조합된 열 선택 정보 리스트의 형태로 제공되는 것을 특징으로 하는 메모리 장치.
  13. 제 8 항에 있어서,
    상기 목표 행에 저장된 데이터는 2의 거듭제곱 개수의 타일을 이어 붙인 슈퍼 타일 방식으로 맵핑된 데이터인 것을 특징으로 하는 메모리 장치.
  14. 복수의 행들 및 복수의 열들을 형성하도록 배열되는 복수의 메모리 셀들을 포함하고, 행 어드레스에 기초하여 상기 복수의 행들 중 목표 행을 선택하기 위한 행 선택 신호를 발생하고, 열 어드레스 및 열 선택 정보에 기초하여 상기 목표 행에 포함되는 열들 중 복수의 목표 열들을 한 번에 선택하기 위한 다중 열 선택 신호를 발생하고, 상기 다중 열 선택 신호에 기초하여 상기 복수의 목표 열들을 한 번에 선택하며, 상기 다중 열 선택 신호 및 데이터 마스크 신호에 기초하여 상기 복수의 목표 열들에 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 열들에 저장된 데이터를 한 번에 출력 데이터로서 출력하고,
    상기 목표 행에 포함되는 상기 복수의 목표 열들에 대응하는 상기 열 어드레스는 연속적이지 않은 메모리 장치; 및
    버스를 통해 상기 메모리 장치와 연결되고, 상기 메모리 장치에 제공되는 상기 행 어드레스, 상기 열 어드레스 및 상기 열 선택 정보를 발생하는 버스 마스터를 포함하며,
    상기 버스 마스터는,
    가상 주소 및 메모리 맵핑 정보에 기초하여, 물리 주소에 대응하는 상기 행 어드레스 및 상기 열 어드레스를 발생하는 메모리 관리 장치; 및
    상기 메모리 맵핑 정보, 메모리 액세스 타입 정보 및 디폴트 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생하는 열 선택 정보 생성기를 포함하는 컨트롤러를 포함하는 전자 시스템.
  15. 제 14 항에 있어서,
    상기 메모리 맵핑 정보 및 상기 디폴트 메모리 액세스 타입 정보는 별도의 레지스터에 저장되거나 페이지 테이블에 저장되는 것을 특징으로 하는 전자 시스템.
  16. 제 14 항에 있어서, 상기 열 선택 정보 생성기는,
    상기 메모리 액세스 타입 정보가 유효한 경우에, 상기 메모리 맵핑 정보 및 상기 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생하며,
    상기 메모리 액세스 타입 정보가 유효하지 않은 경우에, 상기 메모리 맵핑 정보 및 상기 디폴트 메모리 액세스 타입 정보에 기초하여 상기 열 선택 정보를 발생하는 것을 특징으로 하는 전자 시스템.
  17. 제 14 항에 있어서, 상기 버스 마스터는,
    상기 가상 주소 또는 상기 물리 주소의 태그와 캐시 엔트리에 저장된 태그를 비교하여 제1 비교 신호를 발생하는 제1 비교기;
    상기 메모리 액세스 타입 정보 및 상기 디폴트 메모리 액세스 타입 정보 중 하나를 선택하는 선택기;
    상기 선택기의 출력과 상기 캐시 엔트리의 보조 비트에 저장된 메모리 액세스 타입 정보를 비교하여 제2 비교 신호를 발생하는 제2 비교기;
    상기 제1 비교 신호, 상기 제2 비교 신호 및 상기 캐시 엔트리에 저장된 플래그 비트 중 유효 비트가 유효한지 여부에 기초하여 캐시 히트 결과 신호를 발생하는 논리 게이트;
    상기 메모리 액세스 타입에 따른 순서대로 오프셋을 증가시키며 상기 캐시 엔트리의 캐시라인에 데이터를 저장하고, 상기 메모리 액세스 타입과 상기 열 선택 정보를 상기 캐시 엔트리의 보조 비트에 저장하는 캐시 컨트롤러; 및
    상기 캐시 컨트롤러에 의해 제어되고 상기 캐시 엔트리에 보조 비트를 포함하는 캐시 메모리를 더 포함하는 것을 특징으로 하는 전자 시스템.
  18. 제 14 항에 있어서, 상기 버스 마스터는,
    상기 열 선택 정보에 기초하여 캐시라인의 복수의 캐시 열들 중 복수의 목표 캐시 열들을 한 번에 액세스하는 캐시 컨트롤러; 및
    상기 캐시 컨트롤러에 의해 제어되며 상기 복수의 목표 캐시 열들에 상기 입력 데이터를 한 번에 기입하거나 상기 복수의 목표 캐시 열들에 저장된 데이터를 한 번에 상기 출력 데이터로서 출력하는 캐시 메모리를 더 포함하는 것을 특징으로 하는 전자 시스템.
  19. 제 18 항에 있어서,
    상기 캐시 컨트롤러는 상기 열 선택 정보를 분배하는 분배기를 더 포함하며,
    상기 분배기에서 출력되는 상기 분배된 열 선택 정보에 기초하여 상기 캐시라인에 포함되는 상기 복수의 캐시 열들 중 상기 복수의 목표 캐시 열들을 한 번에 액세스하는 것을 특징으로 하는 전자 시스템.
KR1020170054680A 2017-04-27 2017-04-27 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템 KR101801901B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170054680A KR101801901B1 (ko) 2017-04-27 2017-04-27 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템
US15/851,775 US10691608B2 (en) 2017-04-27 2017-12-22 Memory device accessed in consideration of data locality and electronic system including the same
PCT/KR2018/004850 WO2018199646A1 (ko) 2017-04-27 2018-04-26 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170054680A KR101801901B1 (ko) 2017-04-27 2017-04-27 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR101801901B1 true KR101801901B1 (ko) 2017-11-27

Family

ID=60810811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170054680A KR101801901B1 (ko) 2017-04-27 2017-04-27 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템

Country Status (3)

Country Link
US (1) US10691608B2 (ko)
KR (1) KR101801901B1 (ko)
WO (1) WO2018199646A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019125782A1 (en) * 2017-12-21 2019-06-27 Northrop Grumman Systems Corporation Memory circuit with analog bypass portion
US10447278B1 (en) 2018-07-17 2019-10-15 Northrop Grumman Systems Corporation JTL-based superconducting logic arrays and FPGAs
US10818346B2 (en) 2018-09-17 2020-10-27 Northrop Grumman Systems Corporation Quantizing loop memory cell system
US11024791B1 (en) 2020-01-27 2021-06-01 Northrop Grumman Systems Corporation Magnetically stabilized magnetic Josephson junction memory cell

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089276A (ja) 2011-10-21 2013-05-13 Renesas Electronics Corp 半導体記憶装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494980B1 (ko) 2002-12-02 2005-06-13 주식회사 넥서스칩스 범위선택 가능한 어드레스 디코더와 이를 이용한 고속그래픽 처리용 프레임 메모리 장치
US7280428B2 (en) * 2004-09-30 2007-10-09 Rambus Inc. Multi-column addressing mode memory system including an integrated circuit memory device
KR20090065504A (ko) * 2006-12-25 2009-06-22 파나소닉 주식회사 메모리 제어 장치, 메모리 장치 및 메모리 제어 방법
US7729191B2 (en) * 2007-09-06 2010-06-01 Micron Technology, Inc. Memory device command decoding system and memory device and processor-based system using same
EP2467852B1 (en) * 2009-08-20 2019-05-22 Rambus Inc. Atomic memory device
JP2014225309A (ja) * 2013-05-16 2014-12-04 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置
US9406362B2 (en) * 2013-06-17 2016-08-02 Micron Technology, Inc. Memory tile access and selection patterns
JP2018156715A (ja) * 2017-03-21 2018-10-04 東芝メモリ株式会社 半導体記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089276A (ja) 2011-10-21 2013-05-13 Renesas Electronics Corp 半導体記憶装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019125782A1 (en) * 2017-12-21 2019-06-27 Northrop Grumman Systems Corporation Memory circuit with analog bypass portion
US10417136B2 (en) 2017-12-21 2019-09-17 Northrop Grumman Systems Corporation Write-through detection for a memory circuit with an analog bypass portion
US10447278B1 (en) 2018-07-17 2019-10-15 Northrop Grumman Systems Corporation JTL-based superconducting logic arrays and FPGAs
US10756738B2 (en) 2018-07-17 2020-08-25 Northrop Grumman Systems Corporation JTL-based superconducting logic arrays and FPGAS
US10818346B2 (en) 2018-09-17 2020-10-27 Northrop Grumman Systems Corporation Quantizing loop memory cell system
US11120869B2 (en) 2018-09-17 2021-09-14 Northrop Grumman Systems Corporation Quantizing loop memory cell system
US11024791B1 (en) 2020-01-27 2021-06-01 Northrop Grumman Systems Corporation Magnetically stabilized magnetic Josephson junction memory cell

Also Published As

Publication number Publication date
US20180314640A1 (en) 2018-11-01
US10691608B2 (en) 2020-06-23
WO2018199646A1 (ko) 2018-11-01

Similar Documents

Publication Publication Date Title
KR101801901B1 (ko) 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템
US7805587B1 (en) Memory addressing controlled by PTE fields
US6104418A (en) Method and system for improved memory interface during image rendering
TWI390400B (zh) 繪圖處理子系統
KR101639574B1 (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US9348764B2 (en) System on chip including memory management unit and memory address translation method thereof
US20120297139A1 (en) Memory management unit, apparatuses including the same, and method of operating the same
US8266380B2 (en) Cache memory control method and cache memory apparatus
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
US7948498B1 (en) Efficient texture state cache
CN108139989B (zh) 配备有存储器中的处理和窄访问端口的计算机设备
JP2001022638A (ja) 情報処理システム
US9678872B2 (en) Memory paging for processors using physical addresses
US8217954B2 (en) Reconfigurable dual texture pipeline with shared texture cache
CN107408076B (zh) 数据处理装置
US8402199B2 (en) Memory management system and method thereof
US9727476B2 (en) 2-D gather instruction and a 2-D cache
US20100257319A1 (en) Cache system, method of controlling cache system, and information processing apparatus
JPH10162157A (ja) グラフィックコントローラ
US20180052773A1 (en) Memory managing method and apparatus associated with cache in image processing system
KR102565238B1 (ko) 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법
JP4918535B2 (ja) キャッシュメモリ、キャッシュメモリ装置及び割当て方法
US7107425B2 (en) SDRAM controller that improves performance for imaging applications
CN117891750A (zh) 一种对gpu中图元顶点数据访存的加速架构和方法
US20190095349A1 (en) Apparatus, system, and method to determine a cache line in a first memory device to be evicted for an incoming cache line from a second memory device

Legal Events

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