KR20170049553A - 메모리 내 스왑 동작들 - Google Patents

메모리 내 스왑 동작들 Download PDF

Info

Publication number
KR20170049553A
KR20170049553A KR1020177008785A KR20177008785A KR20170049553A KR 20170049553 A KR20170049553 A KR 20170049553A KR 1020177008785 A KR1020177008785 A KR 1020177008785A KR 20177008785 A KR20177008785 A KR 20177008785A KR 20170049553 A KR20170049553 A KR 20170049553A
Authority
KR
South Korea
Prior art keywords
bit
vector
memory cells
stored
sense
Prior art date
Application number
KR1020177008785A
Other languages
English (en)
Other versions
KR101889238B1 (ko
Inventor
카일 비. 휠러
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20170049553A publication Critical patent/KR20170049553A/ko
Application granted granted Critical
Publication of KR101889238B1 publication Critical patent/KR101889238B1/ko

Links

Images

Classifications

    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/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
    • 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/0625Power saving in storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • 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/0683Plurality of storage devices
    • 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/4076Timing circuits
    • 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/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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
    • G11C7/065Differential amplifiers of latching type
    • 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
    • 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/1009Data masking during input/output
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Dram (AREA)
  • Semiconductor Memories (AREA)
  • Static Random-Access Memory (AREA)

Abstract

본 발명의 예들은 메모리 내 스왑 동작들을 수행하는 것과 관련 있는 장치들 및 방법들을 제공한다. 예시적인 장치는 제1 감지 라인에 접속되고 제1 요소를 저장하도록 구성된 메모리 셀들의 제1 그룹을 포함할 수 있다. 예시적인 장치는 또한 제2 감지 라인에 접속되고 제2 요소를 저장하도록 구성된 메모리 셀들의 제2 그룹을 포함할 수 있다. 예시적인 장치는 또한 데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 다수의 동작을 수행하도록 감지 회로를 제어함으로써 제1 요소가 메모리 셀들의 제2 그룹에 저장되게 그리고 제2 요소가 메모리 셀들의 제1 그룹에 저장되게 하도록 구성된 제어기를 포함할 수 있다.

Description

메모리 내 스왑 동작들{SWAP OPERATIONS IN MEMORY}
본 발명은 일반적으로 반도체 메모리 장치들 및 방법들, 그리고 보다 상세하게는, 메모리 내 스왑 동작들과 관련된 장치들 및 방법들에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 시스템들에 내부의, 반도체, 집적 회로들로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함하여 많은 상이한 유형의 메모리가 존재한다. 휘발성 메모리는 그것의 데이터(예를 들어, 호스트 데이터, 에러 데이터 등)를 유지하기 위해 전력을 필요로 할 수 있고 다른 것들 중에서도, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 및 사이리스터 랜덤 액세스 메모리(TRAM)를 포함할 수 있다. 비-휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영속적 데이터를 제공할 수 있고 다른 것들 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, 및 가변 저항 메모리 이를테면 상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기저항식 랜덤 액세스 메모리(MRAM), 이를테면 스핀 토크 전달 랜덤 액세스 메모리(STT RAM)를 포함할 수 있다.
전자 시스템들은 보통 다수의 프로세싱 자원(예를 들어, 하나 이상의 프로세서)을 포함하며, 이들은 명령들을 검색 및 실행하고 실행된 명령들의 결과들을 적절한 위치에 저장할 수 있다. 프로세서는 다수의 기능 단위(예를 들어, 본 출원에서 기능 단위 회로(FUC)) 이를테면 예를 들어, 산술 논리 장치(ALU) 회로, 부동 소수점 장치(FPU) 회로, 및/또는 조합 논리 블록을 포함할 수 있으며, 이들은 데이터(예를 들어, 하나 이상의 피연산자)에 대해 논리 연산들 이를테면 AND, OR, NOT, NAND, NOR, 및 XOR 논리 연산들을 수행함기 위한 명령들을 수행할 수 있다.
전자 시스템 내 다수의 구성요소는 실행을 위한 기능 단위 회로에 명령들을 제공하는 데 수반될 수 있다. 명령들은 예를 들어, 프로세싱 자원 이를테면 제어기 및/또는 호스트 프로세서에 의해, 생성될 수 있다. 데이터(예를 들어, 명령들이 논리 연산들을 수행하기 위해 실행될 피연사자들)는 FUC에 의해 액세스가능한 메모리 어레이에 저장될 수 있다. 명령들 및/또는 데이터는 메모리 어레이에서 검색될 수 있고 FUC가 데이터에 대해 명령들을 실행하기 시작하기 전 시퀀싱 및/또는 버퍼링될 수 있다. 뿐만 아니라, 상이한 유형들의 연산들이 FUC를 통해 하나 또는 다수의 클록 사이클로 실행될 수 있기 때문에, 연산들 및/또는 데이터의 중간 결과들이 또한 시퀀싱 및/또는 버퍼링될 수 있다.
많은 경우, 프로세싱 자원들(예를 들어, 프로세서 및/또는 관련 FUC)은 메모리 어레이의 외부에 있을 수 있고, 데이터가 명령들을 실행하기 위해 (예를 들어, 프로세싱 자원들 및 메모리 어레이 간 버스를 통해) 액세스될 수 있다. 데이터는 메모리 어레이로부터 버스를 통해 메모리 어레이 외부의 레지스터들로 이동될 수 있다.
도 1은 본 발명의 다수의 실시예에 따른 메모리 디바이스를 포함하는 컴퓨팅 시스템의 형태로 된 장치의 블록도이다.
도 2a는 본 발명의 다수의 실시예에 따른 메모리 어레이의 일부분의 개략도를 예시한다.
도 2b는 본 발명의 다수의 실시예에 따른 메모리 어레이의 일부분의 개략도를 예시한다.
도 3은 본 발명의 다수의 실시예에 따른 메모리 어레이의 일부분의 개략도를 예시한다.
도 4a 내지 도 4q는 본 발명의 다수의 실시예에 따른 스왑 동작을 수행하는 것과 연관된 다수의 특정 단계에서의 어레이의 일부분의 메모리 셀들의 상태들을 예시한다.
도 5는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 6은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 7은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 8은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 9는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 10은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 11은 본 발명의 다수의 실시예에 따른 선택가능한 논리 연산 선택 로직을 갖는 감지 회로를 예시한 개략도이다.
도 12는 본 발명의 다수의 실시예에 따른 감지 회로에 의해 구현된 선택가능한 논리 연산 결과들을 예시한 논리 테이블이다.
본 발명은 메모리 내에서 스왑 동작들을 수행하는 것과 관련 있는 장치들 및 방법들을 포함할 수 있다. 스왑 동작은 제1 요소(예를 들어, 제1 벡터) 및 제2 요소(예를 들어, 제2 벡터)에 대해 수행될 수 있다. 요소는 감지 라인에 접속된 그룹 메모리 셀들에 저장될 수 있다. 예를 들어, 제1 감지 라인에 접속된 메모리 셀들의 제1 그룹은 제1 요소를 저장하도록 구성될 수 있다. 예를 들어, 제2 감지 라인에 접속된 메모리 셀들의 제2 그룹은 제2 요소를 저장하도록 구성될 수 있다. 스왑 동작은 데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 다수의 동작을 수행함으로써 메모리 셀들의 제2 그룹에 제1 요소를 그리고 메모리 셀들의 제1 그룹에 제2 요소를 저장할 수 있다.
본 출원에서 사용될 때, 제1 요소 및 제2 요소는 어레이에 (예를 들어, 비트-벡터들로서) 저장될 수 있는 수치 값들일 수 있다. 본 출원에서 사용될 때, 스왑핑은 원래(예를 들어, 처음에) 메모리 셀들의 제1 그룹에 저장된 제1 요소를, 원래 제2 요소가 저장된 메모리 셀들의 제2 그룹에 저장하는 것, 및 원래 메모리 셀들의 제2 그룹에 저장된 제2 요소를, 메모리 셀들의 제1 그룹에 저장하는 것을 지칭한다.
다수의 예에서, 요소는 오브젝트 및/또는 다른 구성을 나타낼 수 있고, 이는 비트-벡터에 의해 나타내어질 수 있다. 예로서, 스왑 동작은 각각의 오브젝트들을 나타내는 비트-벡터들을 스왑핑하기 위해 수행될 수 있다.
본 발명의 다수의 실시예는 이전 접근법들에 관하여 다수의 스왑 동작(예를 들어, 스왑 기능)을 수행하는 데 수반되는 동작들(예를 들어, 계산들, 기능들 등)의 횟수 및 시간의 감소 제공할 수 있다. 예를 들어, 계산들의 횟수 및/또는 시간은 다양한 스왑 동작을 병렬적으로(예를 들어, 동시에) 수행할 수 있는 능력으로 인해 감소될 수 있다. 다수의 스왑 동작을 수행하면 또한 이전 접근법들과 비교할 때 전력 소모를 감소시킬 수 있다. 다수의 실시예에 따르면, 스왑 동작은 데이터를 버스(예를 들어, 데이터 버스, 어드레스 버스, 제어 버스 등)를 통해 메모리 어레이 및 감지 회로 밖으로 전달하지 않고도 요소들(예를 들어, 어레이에 저장된 비트-벡터들 형태의 데이터)에 대해 수행될 수 있으며, 이는 스왑 동작을 수행하기 위해 호스트에 데이터를 전달하는 데 요구되는 시간 및/또는 전력을 감소시킬 수 있다. 스왑 동작의 결과는 예를 들어, 다른 단일 명령 다중 데이터(SIMD) 연산들(예를 들어, 비트-벡터 나눗셈) 및/또는 진보된 패턴 검색 애플리케이션들에 제공될 수 있다. 스왑 동작은 다수의 논리 연산(예를 들어, AND 연산들, OR 연산들, SHIFT(시프트) 연산들, 및 INVERT(인버트) 연산들 등)을 수행하는 것을 수반할 수 있다. 그러나, 실시예들은 이들 예에 제한되지 않는다. 본 출원에서 사용될 때, SIMD 연산들은 다중 요소에 대해 동일한 연산을 병렬적으로(예를 들어, 동시에) 수행하는 것으로 정의도리 수 있다.
다양한 이전 접근법에서, 스왑핑될 요소들(예를 들어, 메모리 셀들의 특정 그룹에 저장된 데이터 및 메모리 셀들의 상이한 특정 그룹에 저장된 데이터)은 입력/출력(I/O) 라인들을 포함하여 버스를 통해 어레이 및 감지 회로로부터 다수의 레지스터에 전달될 수 있다. 다수의 레지스터는 요소들을 스왑핑하기에 그리고 결과를 저장하기에 적절한 논리 연산들을 수행하도록 구성된 ALU 회로 및/또는 다른 기능 단위 회로를 포함할 수 있는, 프로세싱 자원 이를테면 프로세서, 마이크로프로세서, 및/또는 컴퓨팅 엔진에 의해 사용될 수 있다. 그러나, 보통 주어진 시간에 단지 하나의 스왑 동작이 ALU 회로에 의해 수행될 수 있고, 데이터를 버스를 통해 레지스터로부터/에 메모리에/로부터 전달하는 것은 상당한 전력 소모 및 시간 요건을 수반할 수 있다. 프로세싱 자원이 메모리 어레이와 동일한 칩 상에 위치되더라도, 데이터를 계산 회로(예를 들어, ALU)로 어레이 밖으로 이동시키는 데 상당한 전력이 소모될 수 있으며, 이는 데이터를 감지 라인들로부터 I/O 라인들로 전달하기 위해 예를 들어, 감지 라인 어드레스 액세스를 수행하는 것(예를 들어, 컬럼 디코드 신호를 점호(firing)하는 것), 데이터를 어레이 주변부로 이동시키는 것, 데이터를 스왑 동작을 수행하는 것과 연관된 레지스터에 제공하는 것을 수반할 수 있다.
본 발명의 이하의 상세한 설명에서, 상세한 설명의 일부를 형성하고, 본 발명의 하나 이상의 실시예가 실시될 수 있는 양태가 예로서 도시된, 첨부 도면들이 참조된다. 이들 실시예는 해당 기술분야에서의 통상의 기술자들이 본 발명의 실시예들을 실시하게 하기 위해 충분히 상세하게 설명되며, 그리고 다른 실시예들이 활용될 수 있으며 해당 프로세스, 전기적, 및 구조적 변경들이 본 발명의 범위를 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 본 출원에서 사용될 때, 특히 도면들에서의 참조 부호들에 대한, 지정자들 "M," "N," "J," "R," "S," "U," "V," "X," "Y," 및 "W"는 그렇게 지정된 다수의 특정 피처가 포함될 수 있다는 것을 나타낸다. 본 출원에서 사용될 때, "다수의" 특정한 것은 하나 이상의 그러한 것을 지칭할 수 있다(예를 들어, 다수의 메모리 어레이는 하나 이상의 메모리 어레이를 지칭할 수 있다).
본 출원에서의 도면들은 첫번째 숫자 또는 숫자들이 도시된 도면 부호에 대응하고 나머지 숫자들이 도면에서의 요소 또는 구성요소를 식별하는 넘버링 관례에 따른다. 상이한 도면들 간 유사한 요소들 또는 구성요소들은 유사한 숫자들을 사용함으로써 식별될 수 있다. 예를 들어, 130은 도 1에서의 요소 "30"을 참조할 수 있고, 유사한 요소는 도 2에서 230으로서 참조될 수 있다. 인식될 바와 같이, 본 출원에서의 다양한 실시예에 도시된 요소들은 본 발명의 다수의 추가 실시예를 제공하기 위해 추가, 교환, 및/또는 제거될 수 있다. 덧붙여, 인식될 바와 같이, 도면들에 제공된 요소들의 비율 및 상대 축적은 본 발명의 특정한 실시예들을 예시하도록 의도되고 제한적인 의미로 취해져서는 안 된다.
도 1은 본 발명의 다수의 실시예에 따른 메모리 디바이스(160)를 포함하는 컴퓨팅 시스템(100)의 형태로 된 장치의 블록도이다. 본 출원에서 사용될 때, 메모리 디바이스(160), 메모리 어레이(130), 및/또는 감지 회로(150)는 또한 "장치"로서 개별적으로 간주될 수 있다.
시스템(100)은 메모리 어레이(130)를 포함할 수 있는, 메모리 디바이스(160)에 접속된 호스트(110)를 포함할 수 있다. 호스트(110)는 호스트 시스템 이를테면 다양한 다른 유형의 호스트들 중에서도, 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 전화, 또는 메모리 카드 리더기일 수 있다. 호스트(110)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있고, 다수의 프로세싱 자원(예를 들어, 하나 이상의 프로세서, 마이크로프로세서, 또는 몇몇 다른 유형의 제어 회로)을 포함할 수 있다. 시스템(100)은 별개의 집적 회로들을 포함할 수 있거나 호스트(110) 및 메모리 디바이스(160) 양자는 동일한 집적 회로 상에 있을 수 있다. 시스템(100)은 예를 들어, 서버 시스템 및/또는 높은 성능 컴퓨팅(HPC) 시스템 및/또는 이의 부분일 수 있다. 도 1에 도시된 예는 폰 노이만 아키텍처를 갖는 시스템을 예시하지만, 본 발명의 실시예들은 보통 폰 노이만 아키텍처와 연관된 하나 이상의 구성요소(예를 들어, CPU, ALU 등)를 포함하지 않을 수 있는, 비-폰 노이만 아키텍처들(예를 들어, 튜링 기계)로 구현될 수 있다.
명확성을 위해, 시스템(100)은 본 발명과의 특정 관련성을 갖는 피처들에 중점을 두기 위해 간략화되었다. 메모리 어레이(130)는 예를 들어, DRAM 어레이, SRAM 어레이, STT RAM 어레이, PCRAM 어레이, TRAM 어레이, RRAM 어레이, NAND 플래시 어레이, 및/또는 NOR 플레시 어레이일 수 있다. 어레이(130)는 액세스 라인들(본 출원에서 워드 라인들 또는 선택 라인들로서 지칭될 수 있는)이 접속된 로우들 및 감지 라인들(본 출원에서 디지트 라인들 또는 데이터 라인들로서 지칭될 수 있는)이 접속된 컬럼들로 배열되는 메모리 셀들을 포함할 수 있다. 도 1에는 하나의 어레이(130)가 도시되지만, 실시예들은 그에 제한되지 않는다. 예를 들어, 메모리 디바이스(160)는 다수의 어레이(130)(예를 들어, DRAM 셀들의 다수의 뱅크)를 포함할 수 있다. 예시적인 DRAM 어레이는 도 2와 연관하여 설명된다.
메모리 디바이스(160)는 I/O 버스(156)(예를 들어, 데이터 버스)를 거쳐 I/O 회로(144)를 통해 제공되는 어드레스 신호들을 래치하기 위한 어드레스 회로(142)를 포함한다. 어드레스 신호들은 메모리 어레이(130)에 액세스하기 위해 로우 디코더(146) 및 컬럼 디코더(152)에 의해 수신 및 디코딩된다. 데이터는 감지 회로(150)를 사용하여 감지 라인들 상의 전압 및/또는 전류 변화를 감지함으로써 메모리 어레이(130)로부터 판독될 수 있다. 감지 회로(150)는 메모리 어레이(130)로부터의 데이터의 페이지(예를 들어, 로우)를 판독 및 래치할 수 있다. I/O 회로(144)는 I/O 버스(156)를 거쳐 호스트(110)와의 양방향 데이터 통신을 위해 사용될 수 있다. 기록 회로(148)는 메모리 어레이(130)에 데이터를 기록하기 위해 사용된다.
제어기(140)는 호스트(110)로부터 제어 버스(154)에 의해 제공되는 신호들을 디코딩한다. 이들 신호는 데이터 판독, 데이터 기록, 및 데이터 삭제 동작들을 포함하여, 메모리 어레이(130)에 대해 수행되는 제어 동작들을 위해 사용되는 칩 인에이블 신호들, 기록 인에이블 신호들, 및 어드레스 래치 신호들을 포함할 수 있다. 다양한 실시예에서, 제어기(140)는 호스트(110)로부터의 명령들을 실행하는 것에 책임이 있다. 제어기(140)는 상태 기계, 시퀀서, 또는 몇몇 다른 유형의 제어 회로일 수 있다.
감지 회로(150)의 예는 도 2와 연관하여 아래에서 더 설명된다. 예를 들어, 다수의 실시예에서, 감지 회로(150)는 다수의 감지 증폭기 및 다수의 계산 구성요소를 포함할 수 있으며, 이는 누산기를 포함할 수 있고 본 출원에 설명된 실시예들에 따른 스왑 동작들을 수행하는 것과 연관하여 (예를 들어, 상보적 감지 라인들과 연관된 데이터에 대해) 논리 연산들을 수행하기 위해 사용될 수 있다. 다수의 실시예에서, 감지 회로(예를 들어, 150)는 데이터를 감지 라인 어드레스 액세스를 통해 전달하지 않고도(예를 들어, 컬럼 디코드 신호를 점호하지 않고도) 어레이(130)에 저장된 데이터에 대해 스왑 동작들을 수행하기 위해 그리고 논리 연산들의 결과들을 다시 어레이(130)에 저장하기 위해 사용될 수 있다. 이와 같이, 스왑 동작은 감지 회로(150) 외부의 자원들을 프로세싱함으로써(예를 들어, 호스트(110) 및/또는 디바이스(160) 상에(예를 들어, 제어 회로(140) 상에 또는 다른 곳에) 위치되는 다른 프로세싱 회로, 이를테면 ALU 회로와 연관된 프로세서에 의해) 수행되는 것 대신에 그리고/또는 이에 추가적으로 감지 회로(150)를 사용하여 수행될 수 있다.
다양한 이전 접근법에서, 스왑 동작과 연관된 데이터는 예를 들어, 감지 회로를 통해 메모리로부터 판독되고 외부 ALU 회로에 제공될 수 있다. 외부 ALU 회로는 스왑 동작들을 수행할 수 있고, 결과는 로컬 I/O 라인들을 통해 다시 어레이에 전달될 수 있다. 그에 반해, 본 발명의 다수의 실시예에서, 감지 회로(예를 들어, 150)는 감지 회로에 접속된 로컬 I/O 라인을 인에이블하지 않고 메모리 어레이(130) 내 메모리 셀들에 저장된 데이터에 대해 스왑 동작을 수행하고, 결과를 다시 어레이(130)에 저장하도록 구성된다.
이와 같이, 다수의 실시예에서, 감지 회로(150)가 메모리 어레이(130)의 어드레스 공간을 사용하여 스왑 동작을 수행하는 데 수반되는 적절한 계산들을 수행할 수 있기 때문에, 어레이(130) 및 감지 회로(150) 외부의 레지스터들 및 또는 ALU는 스왑 동작을 수행하도록 요구되지 않을 수 있다. 추가적으로, 외부 프로세싱 자원을 사용하지 않고 스왑 동작이 수행될 수 있다.
도 2a는 본 발명의 다수의 실시예에 따른 감지 회로(250)를 포함하는 메모리 어레이(230)의 일부분의 개략도를 예시한다. 도 2a에서, 메모리 셀은 저장 소자(예를 들어, 커패시터) 및 액세스 디바이스(예를 들어, 트랜지스터)를 포함한다. 예를 들어, 제1 메모리 셀은 트랜지스터(202-1) 및 커패시터(203-1)를 포함하고, 제2 메모리 셀은 트랜지스터(202-2)와 커패시터(203-2)를 포함하는 등이다. 본 예에서, 메모리 어레이(230)는 1T1C(일 트랜지스터 및 일 커패시터) 메모리 셀들의 DRAM 어레이이나, 실시예들은 그에 제한되지 않는다. 다수의 실시예에서, 메모리 셀들은 파괴성 판독 메모리 셀들(예를 들어, 셀에 저장된 데이터를 판독하면 데이터를 파괴하고 그에 따라 판독된 후 셀에 원래 저장된 데이터가 복원되게 됨)일 수 있다. 메모리 어레이(230)의 셀들은 워드 라인들(204-X(Row X), 204-Y(Row Y))등이 접속된 로우들 및 상보적 데이터 라인들의 쌍들(예를 들어, DIGIT(n-1)/DIGIT(n-1)_, DIGIT(n)/DIGIT(n)_, DIGIT(n+1)/DIGIT(n+1)_)이 접속된 컬럼들로 배열된다. 상보적 데이터 라인들의 각각의 쌍에 대응하는 개별적인 데이터 라인들은 또한 각각 데이터 라인들(205-1(D) 및 205-2(D_))로서 지칭될 수 있다. 도 2a에는 단지 상보적 데이터 라인들의 세 쌍이 도시되지만, 본 발명의 실시예들은 그에 제한되지 않고, 메모리 셀들의 어레이는 메모리 셀들의 추가적인 컬럼들 및/또는 데이터 라인들(예를 들어, 4,096, 8,192, 16,384, 등)을 포함할 수 있다.
메모리 셀들은 상이한 데이터 라인들 및/또는 워드 라인들에 접속될 수 있다. 예를 들어, 트랜지스터(202-1)의 제1 소스/드레인 영역은 데이터 라인(205-1(D))에 접속될 수 있고, 트랜지스터(202-1)의 제2 소스/드레인 영역은 커패시터(203-1)에 접속될 수 있으며, 트랜지스터(202-1)의 게이트는 워드 라인(204-Y)에 접속될 수 있다. 트랜지스터(202-2)의 제1 소스/드레인 영역은 데이터 라인(205-2(D))에 접속될 수 있고, 트랜지스터(202-2)의 제2 소스/드레인 영역은 커패시터(203-2)에 접속될 수 있으며, 트랜지스터(202-2)의 게이트는 워드 라인(204-X)에 접속될 수 있다. 셀 플레이트는, 도 2a에 도시된 바와 같이, 커패시터(203-1 및 203-2)의 각각에 접속될 수 있다. 셀 플레이트는 기준 전압(예를 들어, 접지)을 다양한 메모리 어레이 구성에 인가할 수 있는 공통 노드일 수 있다.
본 발명의 다수의 실시예에 따르면 메모리 어레이(230)는 감지 회로(250)에 접속된다. 본 예에서, 감지 회로(250)는 메모리 셀들의 각각의 컬럼들에 대응하는(예를 들어, 상보적 데이터 라인들의 각각의 쌍들에 접속된) 감지 증폭기(206) 및 계산 구성요소(231)를 포함한다. 감지 증폭기(206)는 크로스 커플드 래치(cross coupled latch)를 포함할 수 있으며, 이는 본 출원에서 일차 래치(primary latch)로서 지칭될 수 있다. 감지 증폭기(206)는, 예를 들어, 도 2b에 대하여 설명될 바와 같이 구성될 수 있다.
도 2a에 예시된 예에서, 계산 구성요소(231)에 대응하는 회로는 스태틱 래치(static latch)(264) 및 다른 것들 중에서도, 다이나믹 래치(dynamic latch)를 구현하는 열 개의 추가적인 트랜지스터를 포함한다. 계산 구성요소(231)의 다이나믹 래치 및/또는 스태틱 래치는 본 출원에서 이차 래치로서 총칭될 수 있으며, 이는 누산기로서 역할을 할 수 있다. 이와 같이, 계산 구성요소(231)는 누산기로서 작동할 수 있고/있거나 본 출원에서 누산기로서 지칭될 수 있다. 계산 구성요소(231)는 도 2a에 도시된 바와 같이 데이터 라인들(205-1(D) 및 205-2(_D))의 각각에 접속될 수 있다. 그러나, 실시예들은 본 예에 제한되지 않는다. 계산 구성요소(231)의 트랜지스터들은 모두 n-채널 트랜지스터들(예를 들어, NMOS 트랜지스터들)일 수 있으나, 실시예들은 그에 제한되지 않는다.
본 예에서, 데이터 라인(205-1)은 트랜지스터들(216-1 및 239-1)의 제1 소스/드레인 영역, 뿐만 아니라 로딩/패스 트랜지스터(218-1)의 제1 소스/드레인 영역에 접속될 수 있다. 데이터 라인(205-2)은 트랜지스터들(216-2 및 239-2)의 제1 소스/드레인 영역, 뿐만 아니라 로딩/패스 트랜지스터(218-2)의 제1 소스/드레인 영역에 접속될 수 있다.
로드/패스 트랜지스터(218-1 및 218-2)의 게이트들은 아래에서 더 논의될 바와 같이, LOAD 제어 신호에 공통으로 접속될 수 있거나, 또는 PASSD/PASSDB 제어 신호에 각각 접속될 수 있다. 로드/패스 트랜지스터(218-1)의 제2 소스/드레인 영역은 트랜지스터들(216-1 및 239-2)의 게이트들에 직접 접속될 수 있다. 로드/패스 트랜지스터(218-2)의 제2 소스/드레인 영역은 트랜지스터들(216-2 및 239-1)의 게이트들에 직접 접속될 수 있다.
트랜지스터(216-1)의 제2 소스/드레인 영역은 풀-다운 트랜지스터(214-1)의 제1 소스/드레인 영역에 직접 접속될 수 있다.트랜지스터(239-1)의 제2 소스/드레인 영역은 풀-다운 트랜지스터(207-1)의 제1 소스/드레인 영역에 직접 접속될 수 있다. 트랜지스터(216-2)의 제2 소스/드레인 영역은 풀-다운 트랜지스터(214-2)의 제1 소스/드레인 영역에 직접 접속될 수 있다. 트랜지스터(239-2)의 제2 소스/드레인 영역은 풀-다운 트랜지스터(207-2)의 제1 소스/드레인 영역에 직접 접속될 수 있다. 풀-다운 트랜지스터들(207-1, 207-2, 214-1, 및 214-2)의 각각의 제2 소스/드레인 영역은 함께 기준 전압 라인(291-1)(예를 들어, 접지(GND))에 공통으로 접속될 수 있다. 풀-다운 트랜지스터(207-1)의 게이트는 AND 제어 신호 라인에 접속될 수 있고, 풀-다운 트랜지스터(214-1)의 게이트는 ANDinv 제어 신호 라인(213-1)에 접속될 수 있고, 풀-다운 트랜지스터(214-2)의 게이트는 ORinv 제어 신호 라인(213-2)에 접속될 수 있으며, 풀-다운 트랜지스터(207-2)의 게이트는 OR 제어 신호 라인에 접속될 수 있다.
트랜지스터(239-1)의 게이트는 노드(S1)로서 지칭될 수 있고, 트랜지스터(239-2)의 게이트는 노드(S2)로 지칭될 수 있다.도 2a에 도시된 회로는 누산기 데이터를 동적으로 노드들(S1 및 S2) 상에 저장한다. LOAD 제어 신호가 활성화되면 로드/패스 트랜지스터들(218-1 및 218-2)이 도통하게 되고, 그 결과 상보적 데이터가 노드들(S1 및 S2)로 로딩된다. LOAD 제어 신호는 VDD보다 큰 전압으로 상승되어 풀(full) VDD 레벨을 S1/S2로 전달할 수 있다. 그러나, LOAD 제어 신호를 VDD를 초과하는 전압까지 상승시키는 것은 선택적이고, 도 2a에 도시된 회로의 기능은 LOAD 제어 신호가 VDD를 초과하는 전압까지 상승시키는 것을 조건으로 하지는 않는다.
도 2a에 도시된 계산 구성요소(231)의 구성은 감지 증폭기(206)가 점호되기 전(예를 들어, 감지 증폭기(206)의 프리 시딩(pre-seeding) 동안) 풀-다운 트랜지스터들(207-1, 207-2, 214-1, 및 214-2)이 도통될 때 기능을 위해 감지 증폭기를 밸런싱하는 장점을 갖는다. 본 출원에서 사용될 때, 감지 증폭기(206)를 점호한다는 것은 일차 래치를 설정하도록 감지 증폭기(206)를 인에이블하고 그 후 설정된 일차 래치를 유지하도록 감지 증폭기(206)를 디스에이블하는 것을 지칭한다. 평형화(equilibration)가 (감지 증폭기에서) 디스에이블된 후, 그러나 감지 증폭기가 점호하기 전에 논리 연산들을 수행하면 전력 사용량을 절감할 수 있는데, 이는 감지 증폭기의 래치가 풀 레일 전압들(예를 들어, VDD, GND)을 사용하여 "플립핑(flipping)"되지 않아도 되기 때문이다.
트랜지스터들을 인버팅하면 특정 논리 연산들의 수행 시 각각의 데이터 라인을 풀-다운(pull-down)할 수 있다. 예를 들어, (ANDinv 제어 신호 라인(213-1)에 접속된 게이트를 갖는) 트랜지스터(214-1)와 직렬인 (다이나믹 래치의 S2에 접속된 게이트를 갖는) 트랜지스터(216-1)는 데이터 라인(205-1(D))을 풀-다운하도록 작동될 수 있고, (ANDinv 제어 신호 라인(213-2)에 접속된 게이트를 갖는) 트랜지스터(214-2)와 직렬인 (다이나믹 래치의 S1에 접속된 게이트를 갖는) 트랜지스터(216-2)는 데이터 라인(205-2(D_))을 풀-다운하도록 작동될 수 있다.
래치(264)는 접지 및 VDD에 접속함으로써 지속적으로 인에이블되도록 구성되는 것이 아니라 활성 네거티브 제어 신호 라인(212-1)(ACCUMB) 및 활성 포지티브 제어 신호 라인(212-2)(ACCUM)에 접속함으로써 제어가능하게 인에이블될 수 있다. 다양한 실시예에서, 로드/패스 트랜지스터들(208-1 및 208-2)은 각각 LOAD 제어 신호 또는 PASSD/PASSDB 제어 신호 중 하나에 접속된 게이트를 가질 수 있다.
몇몇 실시예에 따르면, 로드/패스 트랜지스터들(218-1)의 게이트는 PASSD 제어 신호에 접속될 수 있고, 로드/패스 트랜지스터들(218-2)의 게이트는 PASSDb 제어 신호에 접속될 수 있다. 트랜지스터들(218-1 및 218-2)의 게이트들이 PASSD 및 PASSDb 제어 신호들 중 하나에 각각 접속된 구성에서, 트랜지스터들(218-1 및 218-2)은 패스 트랜지스터들일 수 있다. 패스 트랜지스터들은 로드 트랜지스터들과 상이하게(예를 들어, 상이한 시간들에 그리고/또는 상이한 전압/전류 조건들 하에) 작동될 수 있다. 이와 같이, 패스 트랜지스터들의 구성은 로드 트랜지스터들의 구성과 상이할 수 있다.
예를 들어, 로드 트랜지스터들은 데이터 라인들을 로컬 다이나믹 노드들(S1 및 S2)에 접속시키는 것과 연관된 로딩을 핸들링하도록 구성될 수 있고, 패스 트랜지스터들은 데이터 라인들을 (예를 들어, 도 2a에 도시된 바와 같이, 시프트 회로(223)를 통해) 인접한 누산기에 접속시키는 것과 연관된 보다 과한 로딩을 처리하도록 구성된다. 몇몇 실시예에 따르면, 로드/패스 트랜지스터들(218-1 및 218-2)은 패스 트랜지스터에 대응하여 보다 과한 로딩을 수용하도록 그러나 로드 트랜지스터로서 접속 및 작동되도록 구성될 수 있다. 패스 트랜지스터들로서 구성된 로드/패스 트랜지스터들(218-1 및 218-2)은 또한 로드 트랜지스터들로서도 이용될 수 있다. 그러나, 로드 트랜지스터들로서 구성된 로드/패스 트랜지스터들(218-1 및 218-2)은 패스 트랜지스터들로서 이용될 수 없을 수 있다.
다수의 실시예에서, 계산 구성요소(231)는 래치(264)를 포함하여, 접속된 어레이(예를 들어, 도 2a에 도시된 어레이(230))의 대응하는 메모리 셀들의 트랜지스터들과 피치를 두고 형성된 다수의 트랜지스터를 포함할 수 있으며, 이는 특정 피처 사이즈(예를 들어, 4F2, 6F2 등)에 따를 수 있다. 다양한 실시예에 따르면, 래치(264)는 로드/패스 트랜지스터들(218-1 및 218-2)을 통해 상보적 데이터 라인들의 쌍(205-1 및 205-2)에 접속된 네 개의 트랜지스터(208-1, 208-2, 209-1, 및 209-2)를 포함한다. 그러나, 실시예들은 이러한 구성에 제한되지 않는다. 래치(264)는 다른 트랜지스터들, 이를테면 p-채널 트랜지스터들(예를 들어, PMOS 트랜지스터들)의 쌍(208-1 및 208-2)의 게이트들과 교차 접속된 크로스 커플드 래치(예를 들어, 트랜지스터들, 이를테면 n 채널 트랜지스터들(예를 들어, NMOS 트랜지스터들)의 쌍(209-1 및 209-2)의 게이트들)일 수 있다. 본 출원에서 더 설명될 바와 같이, 크로스 커플드 래치(264)는 스태틱 래치로서 지칭될 수 있다.
각각의 데이터 라인들(205-1 및 205-2) 상의 전압들 또는 전류들은 크로스 커플드 래치(264)의 각각의 래치 입력들(217-1 및 217-2)(예를 들어, 이차 래치의 입력)에 제공될 수 있다. 본 예에서는, 래치 입력(217-1)이 트랜지스터들(208-1 및 209-1)의 제1 소스/드레인 영역 뿐만 아니라 트랜지스터들(208-2 및 209-2)의 게이트들에 접속된다. 유사하게, 래치 입력(217-2)은 트랜지스터들(208-2 및 209-2)의 제1 소스/드레인 영역 뿐만 아니라 트랜지스터들(208-1 및 209-1)의 게이트들에 접속될 수 있다.
본 예에서, 트랜지스터들(209-1 및 209-2)의 제2 소스/드레인 영역은 네거티브 제어 신호 라인(212-1)(예를 들어, 접지(GND) 또는 일차 래치에 대하여 도 2b에 도시된 제어 신호(RnIF)와 유사한 ACCUMB 제어 신호)에 공통으로 접속된다. 트랜지스터들(208-1 및 208-2)의 제2 소스/드레인 영역은 포지티브 제어 신호 라인(212-2)(예를 들어, VDD 또는 일차 래치에 대하여 도 2b에 도시된 제어 신호(ACT)와 유사한 ACCUM 제어 신호)에 공통으로 접속된다. 포지티브 제어 신호(212-2)는 공급 전압(예를 들어, VDD)을 제공할 수 있고 네거티브 제어 신호(212-1)는 크로스 커플드 래치(264)를 인에이블하기 위한 기준 전압(예를 들어, 접지)일 수 있다. 몇몇 실시예에 따르면, 트랜지스터들(208-1 및 208-2)의 제2 소스/드레인 영역은 공급 전압(예를 들어, VDD)에 직접 공통으로 접속되고, 트랜지스터들(209-1 및 209-2)의 제2 소스/드레인 영역은 래치(264)를 지속적으로 인에이블하기 위해 기준 전압(예를 들어, 접지)에 직접 공통으로 접속된다.
인에이블된 크로스 커플드 래치(264)는 래치 입력(217-1)(예를 들어, 제1 공통 노드) 및 래치 입력(217-2)(예를 들어, 제2 공통 노드) 간 차동 전압을 증폭하도록 작동하고, 그에 따라 래치 입력(217-1)이 활성화된 포지티브 제어 신호 전압(예를 들어, VDD) 또는 활성화된 네거티브 제어 신호 전압(예를 들어, 접지) 중 하나로 구동되게 되고, 래치 입력(217-2)은 활성화된 포지티브 제어 신호 전압(예를 들어, VDD) 또는 활성화된 네거티브 제어 신호 전압(예를 들어, 접지) 중 상보적인 제어 신호 전압(예를 들어, 다른 하나)로 구동되게 된다.
도 2b는 본 발명의 다수의 실시예에 따른 메모리 어레이의 일부분의 개략도를 예시한다. 다양한 실시예에 따르면, 감지 증폭기(206)는 크로스 커플드 래치를 포함할 수 있다. 그러나, 감지 증폭기(206)의 실시예들은 크로스 커플드 래치에 제한되지 않는다. 예로서, 감지 증폭기(206)는 전류-모드 감지 증폭기 및/또는 싱글-엔디드 감지 증폭기(예를 들어, 하나의 데이터 라인에 접속된 감지 증폭기) 일 수 있다. 또한, 본 발명의 실시예들은 폴디드 데이터 라인 아키텍처(folded data line architecture)에 제한되지 않는다.
다수의 실시예에서, 감지 증폭기(예를 들어, 206)는 대응하는 계산 구성요소(231) 및/또는 접속된 어레이의 메모리 셀들(예를 들어, 도 2a에 도시된 230)의 트랜지스터들과 피치를 두고 형성된 다수의 트랜지스터를 포함할 수 있으며, 이는 특정 피처 사이즈(예를 들어, 4F2, 6F2 등)에 따를 수 있다. 감지 증폭기(206)는 상보적 데이터 라인들의 쌍(205-1 및 205-2)에 접속된 네 개의 트랜지스터를 포함하는 래치(215)를 포함한다. 래치(215)는 다른 트랜지스터들, 이를테면 p-채널 트랜지스터들(예를 들어, PMOS 트랜지스터들)의 쌍(229-1 및 229-2)의 게이트들과 교차 접속된 크로스 커플드 래치(예를 들어, 트랜지스터들, 이를테면 n 채널 트랜지스터들(예를 들어, NMOS 트랜지스터들)의 쌍(227-1 및 227-2)의 게이트들)일 수 있다. 본 출원에서 더 설명될 바와 같이, 트랜지스터들(227-1, 227-2, 229-1, 및 229-2)를 포함하는 래치(215)는 일차 래치로서 지칭될 수 있다. 그러나, 실시예들은 본 예에 제한되지 않는다.
각각의 데이터 라인들(205-1 및 205-2) 상의 전압들 또는 전류들은 크로스 커플드 래치(215)의 각각의 래치 입력들(233-1 및 233-2)(예를 들어, 이차 래치의 입력)에 제공될 수 있다. 본 예에서는, 래치 입력(233-1)이 트랜지스터들(227-1 및 229-1)의 제1 소스/드레인 영역 뿐만 아니라 트랜지스터들(227-2 및 229-2)의 게이트들에 접속된다. 유사하게, 래치 입력(233-2)은 트랜지스터들(227-2 및 229-2)의 제1 소스/드레인 영역 뿐만 아니라 트랜지스터들(227-1 및 229-1)의 게이트들에 접속될 수 있다. 계산 구성요소(231)(예를 들어, 누산기)는 도시된 바와 같이 크로스 커플드 래치(215)의 래치 입력들(233-1 및 233-2)에 접속될 수 있으나; 본 발명의 실시예들은 도 2b에 도시된 예에 제한되지 않는다.
본 예에서, 트랜지스터(227-1 및 227-2)의 제2 소스/드레인 영역은 활성 네거티브 제어 신호 전압(228)(RnIF)에 공통으로 접속된다. 트랜지스터들(229-1 및 229-2)의 제2 소스/드레인 영역은 활성 포지티브 제어 신호(265)(ACT)에 공통으로 접속된다. ACT 신호(265)는 공급 전압(예를 들어, VDD)일 수 있고, RnIF 신호는 기준 전압(예를 들어, 접지)일 수 있다. 활성화 신호들(228 및 265)는 크로스 커플드 래치(215)를 인에이블한다.
인에이블된 크로스 커플드 래치(215)는 래치 입력(233-1)(예를 들어, 제1 공통 노드) 및 래치 입력(233-2)(예를 들어, 제2 공통 노드) 간 차동 전압을 증폭하도록 작동하고, 그에 따라 래치 입력(233-1)이 ACT 신호 전압 및 RnIF 신호 전압 중 하나로(예를 들어, VDD 및 접지 중 하나로) 구동되게 되고, 래치 입력(233-2)은 ACT 신호 전압 및 RnIF 신호 전압 중 다른 하나로 구동되게 된다.
감지 증폭기(206)는 또한 (예를 들어, 감지 동작을 위해 감지 증폭기를 준비하는 것과 연관하여) 데이터 라인들(205-1 및 205-2)을 평형화하도록 구성된 회로를 포함할 수 있다. 본 예에서, 평형화 회로는 제1 소스/드레인 영역이 트랜지스터(225-1)의 제1 소스/드레인 영역 및 데이터 라인(205-1)에 접속된 트랜지스터(224)를 포함한다.트랜지스터(224)의 제2 소스/드레인 영역은 트랜지스터(225-2)의 제1 소스/드레인 영역 및 데이터 라인(205-2)에 접속될 수 있다. 트랜지스터(224)의 게이트는 트랜지스터들(225-1 및 225-2)의 게이트들에 접속될 수 있다.
트랜지스터들(225-1 및 225-2)의 제2 소스 드레인 영역들은 평형화 전압(238)(예를 들어, VDD/2)에 접속되며, 이는 VDD/2와 동일하며, 이때 VDD는 어레이와 연관된 공급 전압이다. 트랜지스터들(224, 225-1, 및 225-2)의 게이트들은 제어 신호(225(EQ))에 접속될 수 있다. 이와 같이, EQ를 활성화하면 트랜지스터들(224, 225-1, 및 225-2)을 인에이블하며, 이는 효과적으로 데이터 라인(205-1) 대 데이터 라인(205-2)을 단락시키고, 그에 따라 데이터 라인들(205-1 및 205-2)이 평형화 전압(VDD/2)으로 평형화되게 된다. 본 발명의 다양한 실시예에 따르면, 감지 증폭기를 사용하여 다수의 논리 연산이 수행될 수 있고, 그 결과는 계산 구성요소(예를 들어, 누산기)에 저장될 수 있다.
도 2a에 도시된 바와 같이, 감지 증폭기(206) 및 계산 구성요소(231)는 시프트 회로(223)를 통해 어레이(230)에 접속될 수 있다. 본 예에서, 시프트 회로(223)는 데이터 라인들(각각, 205-1 및 205-2)에 접속된 격리 디바이스들의 쌍(예를 들어, 격리 트랜지스터들(221-1 및 221-2))을 포함한다. 격리 트랜지스터들(221-1 및 221-2)은 제어 신호(222)(NORM)에 접속되며, 이는 활성화될 때, 격리 트랜지스터들(221-1 및 221-2)을 인에이블(예를 들어, 턴 온)하여 대응하는 메모리 셀들의 컬럼에(예를 들어, 대응하는 상보적 데이터 라인들(205-1 및 205-2)의 쌍에) 대응하는 감지 증폭기(206) 및 계산 구성요소(231)를 접속시킨다. 다양한 실시예에 따르면, 격리 트랜지스터들(221-1 및 221-2)의 도통은 시프트 회로(223)의 "정상(normal)" 구성으로 지칭될 수 있다.
도 2a에 예시된 예에서, 시프트 회로(223)는, 예를 들어, NORM이 비활성화될 때, 활성화될 수 있는 상보적 제어 신호(219)(SHIFT)에 접속된 다른(예를 들어, 제2) 격리 디바이스들의 쌍(예를 들어, 격리 트랜지스터들(221-3 및 221-4))을 포함한다. 격리 트랜지스터들(221-3 및 221-4)은 특정 감지 증폭기(206) 및 계산 구성요소(231)가 상이한 상보적 데이터 라인들의 쌍(예를 들어, 격리 트랜지스터들(221-1 및 221-2)이 특정 감지 증폭기(206) 및 계산 구성요소(231)에 접속된 상보적 데이터 라인들의 쌍과 상이한 상보적 데이터 라인들의 쌍)에 접속되도록, 또는 특정 감지 증폭기(206) 및 계산 구성요소(231)를 다른 메모리 어레이에 접속(그리고 특정 감지 증폭기(206) 및 계산 구성요소(231)를 제1 메모리 어레이로부터 격리)시킬 수 있도록, (예를 들어, 제어 신호(219)를 통해) 작동될 수 있다. 다양한 실시예에 따르면, 시프트 회로(223)는, 예를 들어, 감지 증폭기(206)의 일부분으로서(예를 들어, 내에) 배치될 수 있다.
도 2a에 도시된 시프트 회로(223)는 특정 감지 회로(250)(예를 들어, 특정 감지 앰프(206) 및 대응하는 계산 구성요소(231))를 특정 상보적 데이터 라인들의 쌍(205-1 및 205-2)(예를 들어, DIGIT(n) 및 DIGIT(n)_)에 접속시키는 데 사용되는 격리 트랜지스터들(221-1 및 221-2)을 포함하고 격리 트랜지스터들(221-3 및 221-4)은 특정 감지 회로(250)를 하나의 특정 방향으로 인접한 상보적 데이터 라인들의 쌍(예를 들어, 도 2a의 우측에 도시된 인접한 데이터 라인들(DIGIT(n+1) 및 DIGIT(n+1)_)에 접속시키도록 배치되지만, 본 발명의 실시예들은 그에 제한되지 않는다. 예를 들어, 시프트 회로는 특정 감지 회로를 특정 상보적 데이터 라인들의 쌍(예를 들어, DIGIT(n) 및 DIGIT(n)_)에 접속시키는 데 사용되는 격리 트랜지스터들(221-1 및 221-2) 및 특정 감지 회로를 다른 특정 방향으로 인접한 상보적 데이터 라인들의 쌍(예를 들어, 도 2a의 좌측에 도시된 인접한 데이터 라인들(DIGIT(n-1) 및 DIGIT(n-1)_)에 접속시키기 위해 배치된 격리 트랜지스터들(221-3 및 221-4)을 포함할 수 있다.
본 발명의 실시예들은 도 2a에 도시된 시프트 회로(223)의 구성에 제한되지 않는다. 다수의 실시예에서, 도 2a에 도시된 것과 같은 시프트 회로(223)는 예를 들어, I/O 라인(예를 들어, 도 3에 도시된 I/O 라인(334))을 통해 데이터를 감지 회로(250) 밖으로 전달하지 않고도 다양한 연산(예를 들어, 논리 및/또는 산술 연산)을 수행하는 것과 연관하여 (예를 들어, 감지 증폭기(206) 및 계산 구성요소(231)와 함께) 작동될 수 있다. 시프트 회로(223)가 감지 회로(250)(예를 들어, 도 1의 감지 회로(150))와 별개인 것으로 도시되지만, 시프트 회로(223)는 감지 회로(250)(예를 들어, 도 1의 감지 회로(150))의 부분인 것으로 여겨질 수 있다.
도 2a에는 도시되지 않았지만, 메모리 셀들의 각각의 컬럼은 로컬 I/O 라인(예를 들어, 도 3에 도시된 I/O 라인(334))을 통해, 데이터 값을 대응하는 감지 증폭기(206) 및/또는 계산 구성요소(231)로부터 어레이 외부의 제어 구성요소 이를테면 외부 프로세싱 자원(예를 들어, 호스트 프로세서 및/또는 다른 기능적 단위 회로)으로 전달하도록 활성화될 수 있는 컬럼 복호화 라인(예를 들어, 도 3에 도시된 복호화 라인들(310-0 내지 310-W))에 접속될 수 있다. 컬럼 복호화 라인은 컬럼 복호화기(예를 들어, 도 1에 도시된 컬럼 복호화기(152))에 접속될 수 있다. 그러나, 본 출원에서 설명된 바와 같이, 다수의 실시예에서, 본 발명의 실시예들에 따라 논리 연산들을 수행하기 위해 데이터는 그러한 I/O 라인들을 통해 전달될 필요가 없다. 다수의 실시예에서, 시프트 회로(223)는 데이터를 예를 들어, 어레이 외부의 제어 구성요소로 전달하지 않고도 다양한 연산(예를 들어, 가, 감, 승, 제 등을 수행하는 것과 연관된 논리 연산)을 수행하도록 감지 증폭기(206) 및 계산 구성요소(231)와 함께 작동될 수 있다.
감지 회로(250)는 논리 연산의 결과를 초기에 감지 증폭기(206)에 저장하는 제2 모드, 및 논리 연산의 결과를 초기에 계산 구성요소(231)에 저장하는 제1 모드를 포함하여, 몇 개의 모드로 논리 연산들을 수행하도록 작동될 수 있다. 제2 모드에서의 감지 회로(250)의 동작은 도 5 및 도 6에 대하여 아래에서 설명되고, 제2 모드에서의 감지 회로(250)의 동작은 도 7 내지 도 10에 대하여 아래에서 설명된다. 제1 동작 모드에 대하여 추가적으로, 감지 회로(250)는 사전-감지(예를 들어, 논리 연산 제어 신호 활성화 이전 감지 앰프들이 점호됨) 및 사후-감지(예를 들어, 논리 연산 제어 신호 활성화 이후 감지 앰프들이 점호됨) 모드들 양자로 작동될 수 있으며, 논리 연산의 결과는 초기에 감지 증폭기(206)에 저장된다.
아래에서 더 설명될 바와 같이, 감지 증폭기(206)는, 계산 구성요소(231)와 함께, 입력으로서 어레이로부터의 데이터를 사용하여 다양한 논리 연산을 수행하도록 작동될 수 있다. 다수의 실시예에서, 논리 연산의 결과는 데이터를 데이터 라인 어드레스 액세스를 통해 전달하지 않고도(예를 들어, 데이터가 로컬 I/O 라인들을 통해 어레이 및 감지 회로로부터 외부의 회로로 전달되도록 컬럼 복호화 신호를 점호하지 않고도) 어레이에 다시 저장될 수 있다. 이와 같이, 본 발명의 다수의 실시예는 다양한 종래의 접근법에 비해 더 적은 전력을 사용하여 논리 연산들을 수행하는 것을 가능하게 할 수 있다. 추가적으로, 다수의 실시예가 다양한 연산(예를 들어, 계산 기능)을 수행하기 위해 데이터를 I/O 라인들을 거쳐(예를 들어, 메모리 및 별개의 프로세서 사이에) 전달해야 할 필요를 제거하기 때문에, 다수의 실시예는 이전 접근법들과 비교할 때 향상된 병렬 처리 능력을 가능하게 할 수 있다.
도 3은 본 발명의 다수의 실시예에 따른 메모리 어레이(330)의 일부분의 개략도를 예시한다. 어레이(330)는 액세스 라인들(304-0, 304-1, 304-2, 304-3, 304-4, 304-5, 304-6, …, 304-R)의 로우들 및 감지 라인들(305-0, 305-1, 305-2, 305-3, 305-4, 305-5, 305-6, 305-7, …, 305-S)의 컬럼들(이들은 액세스 라인들(304) 및 감지 라인들(305)로서 총칭될 수 있음)에 접속된 메모리 셀들(303-0, 303-1, 303-3, 303-4, 303-5, 303-6, 303-7, 303-8, …, 303-J)(예를 들어, 메모리 셀들(303)로서 총칭됨)을 포함할 수 있다. 메모리 어레이(330)는 특정 수의 액세스 라인 및/또는 감지 라인에 제한되지 않고, 용어들 "로우들" 및 "컬럼들"의 사용은 액세스 라인들 및/또는 감지 라인들의 특정 물리적 구조 및/또는 배향을 의도하지 않는다. 도시되지 않았지만, 메모리 셀들의 각각의 컬럼은 대응하는 상보적 감지 라인들의 쌍(예를 들어, 도 2a에 도시된 상보적 감지 라인들(205-1 및 205-2))과 연관될 수 있다.
메모리 셀들의 각각의 컬럼은 감지 회로(예를 들어, 도 1에 도시된 감지 회로(150) 및 도 2a에 도시된 감지 회로(250))에 접속될 수 있다. 본 예에서, 감지 회로는 각각의 감지 라인들(305-0, 305-1, 305-2, 305-3, 305-4, 305-5, 305-6, 305-7, …, 305-S)에 접속된 다수의 감지 증폭기(306-0, 306-1, 306-2, 306-3, 306-4, 306-5, 306-6, 306-7, …, 306-U)를 포함한다. 감지 증폭기들(306)은 액세스 디바이스들(예를 들어, 트랜지스터들)(308-0, 308-2, 308-3, 308-4, 308-5, 308-6, 308-7, …, 308-V)을 통해 입력/출력(I/O) 라인(334)(예를 들어, 로컬 I/O 라인)에 접속된다. 본 예에서, 감지 회로는 또한 각각의 감지 라인들에 접속된 다수의 계산 구성요소(331-0, 331-2, 331-3, 331-4, 331-5, 331-6, 331-7, …, 331-X)(예를 들어, 계산 구성요소들(331)로서 총칭됨)를 포함한다. 컬럼 복호화 라인들(310-0 내지 310-W)은 각각, 트랜지스터들(308-0 내지 308-V)의 게이트들에 접속되고, 각각의 감지 증폭기들(306-0 내지 306-U)에 의해 감지되고/되거나 각각의 계산 구성요소들(331-0 내지 331-X)에 저장된 데이터를 (예를 들어, I/O 라인(334)을 통해) 어레이(330) 외부의 이차 감지 증폭기(312)로 그리고/또는 프로세싱 자원들로 전달하기 위해 선택적으로 활성화될 수 있다. 다수의 실시예에서, 계산 구성요소들(331)은 그것들의 대응하는 컬럼들의 메모리 셀들과 그리고/또는 대응하는 감지 증폭기들(306)과 피치를 두고 형성될 수 있다.
감지 회로(예를 들어, 계산 구성요소들(331) 및 감지 증폭기들(306))는 본 출원에 설명된 다수의 실시예에 따라 스왑 동작을 수행하도록 구성된다. 도 4a 내지 도 4q와 연관하여 설명된 예는 스왑 동작이 어레이 이를테면 어레이(330)에 저장된 요소들에 대해 수행될 수 있는 양태를 실증한다. 아래에 설명될 바와 같이, 요소들은 저장될 수 있고 그에 따라 다수의 요소의 각각(예를 들어, 논리 "1" 또는 논리 "0"에 대응하는 데이터)이 각각의 번호의 감지 라인들(예를 들어, 305-0 내지 305-S) 중 하나에 공통으로 접속된 메모리 셀들에 저장되게 된다. 예를 들어, 제2 요소가 감지 라인(305-1 등)에 접속된 메모리 셀들의 그룹에 저장될 수 있음에 따라, 제1 요소는 감지 라인(305-0)에 접속된 메모리 셀들의 그룹에 저장될 수 있는 등이다. 다수의 실시예에서, 스왑 동작은 선택된 인접한 요소 쌍들(예를 들어, 짝수 번호의 감지 라인에 접속된 메모리 셀들에 저장된 제1 요소 및 인접한 홀수 번호의 감지 라인에 접속된 메모리 셀들에 저장된 제2 요소를 각각 포함하는 선택된 요소 쌍들)에 대해 수행될 수 있다. 스왑핑되는 요소들은 또한 다수의 액세스 라인(예를 들어, 304-0 내지 304-R)에 공통으로 접속될 수 있다. 예를 들어, 세 개의 메모리 셀의 그룹에 각각 저장된 여섯 개의 요소가 감지 라인들(305-0 내지 305-5) 중 하나에 공통으로 접속되는 것을 고려하자. 본 예에서, 각각의 요소들의 각각에 대응하는 제1 메모리 셀은 제1 액세스 라인(예를 들어, 304-0)에 공통으로 접속될 수 있고, 각각의 요소들의 각각에 대응하는 제2 메모리 셀은 제2 액세스 라인(예를 들어, 304-1)에 공통으로 접속될 수 있으며, 각각의 요소들의 각각에 대응하는 제3 메모리 셀은 제3 액세스 라인(예를 들어, 304-2)에 공통으로 접속될 수 있다.
도 4a 내지 도 4q는 본 발명의 다수의 실시예에 따라 스왑 동작을 수행하는 것과 연관된 다수의 특정 단계에서의 어레이(430)의 일부분의 메모리 셀들의 상태들(예를 들어, 논리 값들)을 예시한다. 어레이(430)는 도 3에 설명된 어레이 이를테면 어레이(330)일 수 있다. 도 4a 내지 도 4q는 다수의 액세스 라인(404-0(Row 0), 404-1(Row 1), 404-2(Row 2), 404-3(Mask Row), 404-4(Shifted Mask Row), 404-5(Temp Row 1), 및 404-6(Temp Row 2))에 그리고 다수의 감지 라인(405-0(Col 0), 405-1(Col 1), 405-2(Col 2), 405-3(Col 3), 405-4(Col 4), 및 405-5(Col 5))에 접속된 셀들의 상태들(예를 들어, 논리 "1" 또는 논리 "0")을 예시한다. 도 4a 내지 도 4q는 또한 스왑 동작의 다양한 동작(예를 들어, 아래에서 설명될 예시적인 의사 코드를 실행하는 것과 연관된 다양한 단계) 동안 각각의 감지 라인들(405-0 내지 405-5)에 접속된 감지 회로(450)(예를 들어, 도 3에 도시된 계산 구성요소들(331) 및/또는 감지 증폭기들(306))의 상태들을 예시한다.
도 4a 내지 도 4q의 예는 감지 라인들(405-0 내지 405-5) 중 하나에 공통으로 접속된 메모리 셀들의 그룹에 각각 저장된 여섯 개의 요소를 포함할 수 있다. 여섯 개의 요소는 값들(예를 들어, 십진수 값들)이고, 어레이(430)에 이진 비트-벡터들(488-0, 488-1, 488-2, 488-3, 488-4, 및 488-5)(비트-벡터들(488)로서 총칭됨)로 저장된다. 본 예에서, 요소들의 각각은 특정 감지 라인에 그리고 액세스 라인들(404-0, 404-1, 및 404-2)에 접속된 세 개의 메모리 셀에 저장된다. 예를 들어, 비트-벡터(488-0)(예를 들어, [011])로 표현된 요소가 감지 라인(405-0)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장되고, 비트-벡터(488-1)(예를 들어, [001])로 표현된 요소는 감지 라인(405-1)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장되고, 비트-벡터(488-2)(예를 들어, [010])로 표현된 요소는 감지 라인(405-2)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장되고 비트-벡터(488-3)(예를 들어, [100])로 표현된 요소는 감지 라인(405-3)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장되고, 비트-벡터(488-4)(예를 들어, [100])로 표현된 요소는 감지 라인(405-4)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장되며, 비트-벡터(488-5)(예를 들어, [010])로 표현된 요소는 감지 라인(405-5)에 그리고 액세스 라인들(404-0 내지 404-2)에 접속된 메모리 셀들에 저장된다. 도 4a 내지 도 4q는 또한 각각의 비트-벡터들(488-0 내지 488-5)로 표현된 요소들의 값들(예를 들어, 십진수 값들)(489-0 내지 489-5)(값들(489)로서 총칭됨)을 나타낸다. 예를 들어, 도 4a에 도시된 바와 같이, 비트-벡터(488-0)(예를 들어, [011])는 값(489-0)(예를 들어, 십진수 값 3)에 대응하고, 비트-벡터(488-1)(예를 들어, [001])는 값(489-1)(예를 들어, 십진수 값 1)에 대응하고, 비트-벡터(488-2)(예를 들어, [010])는 값(489-2)(예를 들어, 십진수 값 2)에 대응하고, 비트-벡터(488-3)(예를 들어, [100])는 값(489-3)(예를 들어, 십진수 값 4)에 대응하고, 비트-벡터(488-4)(예를 들어, [100])는 값(489-4)(예를 들어, 십진수 값 4)에 대응하며, 비트-벡터(488-5)(예를 들어, [010])는 값(489-5)(예를 들어, 십진수 값 2)에 대응한다.
도 4a 내지 도 4q의 예에서는, 요소들이 각각의 감지 라인들에 접속된 세 개의 셀에 저장되고 그에 따라 그것들이 3-비트 비트-벡터들로 표현되게 되지만, 실시예들은 그에 제한되지 않는다. 예를 들어, 요소들은 세 개보다 많거나 적은 셀에 저장될 수 있다. 또한, 도 4a 내지 도 4q에서는, 비트-벡터들(488-0 내지 488-5)의 LSB(최하위 비트)가 액세스 라인(404-0)에 접속된 셀들에 저장되고, 그 다음 LSB가 액세스 라인(404-1)에 접속된 셀들에 저장되며, MSB(최상위 비트)가 액세스 라인(404-2)에 접속된 셀들에 저장되나; 실시예들은 특정 비트들의 순서에 제한되지 않는다. 또한, 복수의 요소가 특정 비트-벡터(예를 들어, 488-0 내지 488-5)로 표현될 수 있다. 예를 들어, 감지 라인(405-0)은 상이한 감지 라인(예를 들어, 405-1)에 접속된 메모리 셀들에 저장된 대응하는 요소들과 스왑핑될 수 있는 다수의 요소를 저장하는 메모리 셀들에 접속될 수 있다.
도 4a 내지 도 4q에 설명된 예는 선택된 인접한 요소 쌍들(예를 들어, 특정 감지 라인에 접속된 셀들에 저장된 요소 및 인접한 감지 라인에 접속된 셀들에 저장된 요소를 각각 포함하는 선택된 요소 쌍들)을 스왑핑하는 것을 수반한다. 구체적으로, 도 4a 내지 도 4q의 예는 비트-벡터들(488-0 및 488-1)로 저장된 요소들(예를 들어, 제1 요소 쌍)을 스왑핑하는 것 비트-벡터들(488-2 및 488-3)로 저장된 요소들(예를 들어, 제2 요소 쌍)을 스왑핑하는 것을 수반한다. 본 예에서, 비트-벡터들(488-4 및 488-5)로 저장된 요소들(예를 들어, 제3 요소 쌍)은 스왑핑되지 않는다. 이와 같이, 도 4a 내지 도 4q에 설명된 스왑핑 동작은 그 결과 감지 라인(405-0)에 접속된 셀들에 본래 저장된 요소(예를 들어, 십진수 값 3을 나타내는 비트-벡터 [011])가 감지 라인(405-1)에 접속된 셀들에 저장되게 되고, 감지 라인(405-1)에 접속된 셀들에 본래 저장된 요소(예를 들어, 십진수 값 1을 나타내는 비트-벡터 [001])가 감지 라인(405-0)에 접속된 셀들에 저장되게 되며, 그에 따라 스왑핑 후, 비트-벡터(488-0)는 [001]이 되고 비트-벡터(488-1)는 [011]이 된다. 유사하게, 도 4a 내지 도 4q와 연관하여 설명된 스왑핑 동작은 그 결과 감지 라인(405-2)에 접속된 셀들에 본래 저장된 요소(예를 들어, 십진수 값 2를 나타내는 비트-벡터 [010])가 감지 라인(405-3)에 접속된 셀들에 저장되게 되고, 감지 라인(405-3)에 접속된 셀들에 본래 저장된 요소(예를 들어, 십진수 값 4를 나타내는 비트-벡터 [100])가 감지 라인(405-2)에 접속된 셀들에 저장되게 되며, 그에 따라 스왑핑 후, 비트-벡터(488-2)는 [100]이 되고 비트-벡터(488-3)는 [010]이 된다. 다수의 실시예에서, 스왑핑 동작은 스왑핑되는 요소 쌍들의 스왑핑이 병렬적으로 발생하도록 수행될 수 있다.
다수의 실시예에서, 특정 액세스 라인(404)에 공통으로 접속된 메모리 셀들의 상태들은 비트-벡터에 대응하여 저장된 데이터 패턴(예를 들어, 비트 패턴)을 나타낸다. 예를 들어, 도 4a 내지 도 4q의 예에서, 액세스 라인(404-0)(Row 0)에 그리고 감지 라인들(405-0 내지 405-5)에 공통으로 접속된 메모리 셀들은 비트-벡터(474-0)(예를 들어, 도 4a에 도시된 바와 같이 [110000])(이는 "Row 0 비트-벡터"로서 지칭될 수 있음)에 대응하여 저장된 데이터 패턴을 나타낸다. 액세스 라인(404-1)(Row 1)에 그리고 감지 라인들(405-0 내지 405-5)에 공통으로 접속된 메모리 셀들은 비트-벡터(474-1)(예를 들어, 도 4a에 도시된 바와 같이 [101001])(이는 "Row 1 비트-벡터"로서 지칭될 수 있음)에 대응하여 저장된 데이터 패턴을 나타낸다. 액세스 라인(404-2)(Row 2)에 그리고 감지 라인들(405-0 내지 405-5)에 공통으로 접속된 메모리 셀들은 비트-벡터(474-2)(예를 들어, 도 4a에 도시된 바와 같이 [000110])(이는 "Row 2 비트-벡터"로서 지칭될 수 있음)에 대응하여 저장된 데이터 패턴을 나타낸다. 이와 같이, 비트-벡터(474-0)는 각각의 비트-벡터들(488)의 LSB들을 포함하고, 비트-벡터(474-1)는 각각의 비트-벡터들(488)의 그 다음 LSB들을 포함하며, 비트-벡터(474-2)는 각각의 비트-벡터들(488)의 MSB들을 포함한다(예를 들어, 각각의 감지 라인들(405-0 내지 405-5)에 대응하는 요소들을 나타내는 비트-벡터들). 본 예에서, 비트-벡터들(488)의 LSB는 인덱스 "0"(예를 들어, n=0)과 연관될 수 있고, 비트-벡터들(488)의 그 다음 LSB는 인덱스 "1"(예를 들어, n=1)과 연관될 수 있으며, 비트-벡터들(488)의 MSB는 인덱스 "2"(예를 들어, n=2)과 연관될 수 있다.
다수의 실시예에서, 메모리 셀들의 그룹들이 그것들의 저장 요소들(예를 들어, 비트-벡터들(488)로 표현된 요소들)에 추가하여 스왑핑 동작을 수행하는 데 사용될 수 있다. 메모리 셀들의 추가 그룹들은 각각의 액세스 라인들 및 저장된 요소들에 대응하는 감지 라인들(도 4a 내지 도 4q의 예에서 감지 라인들(405-0 내지 405-5))에 공통으로 접속된 메모리 셀들의 그룹들일 수 있다. 예로서, 메모리 셀들의 제1 추가 그룹은 어느 요소 쌍들이 스왑핑되고 있는지를 정의할 수 있는 마스크로서의 역할을 할 수 있는 비트 패턴을 저장하는 데 사용될 수 있다. 도 4a 내지 도 4q에 도시된 예에서, 액세스 라인(404-3)(Mask Row)에 그리고 감지 라인들(405-0 내지 405-5)에 접속된 셀들이 어느 요소 쌍들이 스왑핑되고 있는지를 정의할 수 있는 마스크로서의 역할을 한다. Mask Row(404-3)의 메모리 셀들의 상태들은 "Mask Row 비트-벡터"로서 지칭될 수 있는, 비트-벡터(476)에 대응하여 저장된 데이터 패턴을 나타낸다. 메모리 셀들의 제2 추가 그룹은 또한 스왑 동작을 수행하는 것과 연관하여 마스크로서의 역할을 할 수 있는 비트 패턴을 저장하는 데 사용될 수 있다. 도 4a 내지 도 4q에 도시된 예에서, 액세스 라인(404-4)(Shifted Mask Row)에 그리고 감지 라인들(405-0 내지 405-5)에 접속된 셀들이 스왑 동작 동안 마스크로서의 역할을 한다. Shifted Mask Row(404-4)의 메모리 셀들의 상태들은 "Shifted Mask Row 비트-벡터"로서 지칭될 수 있는, 비트-벡터(478)에 대응하여 저장된 데이터 패턴을 나타낸다. 본 예에서, 그리고 도 4b에 도시된 바와 같이, Shifted Mask Row 비트-벡터에 대응하는 데이터 패턴은 오른쪽으로 1 비트-위치가 시프트된 Mask Row 비트-벡터에 대응하는 데이터 패턴이다. 다수의 메모리 셀들의 추가 그룹이 스와핑 동작을 수행하는 것과 연관하여 임시 저장소로서 사용될 수 있다. 도 4a 내지 도 4q에 도시된 예는 임시 저장소로서 사용되는 액세스 라인(404-5(Temp Row 1))에 그리고 감지 라인들(405-0 내지 405-5)에 접속된 메모리 셀들의 추가 그룹 및 임시 저장소로서 사용되는 액세스 라인(404-6(Temp Row 2))에 그리고 감지 라인들(405-0 내지 405-5)에 접속된 메모리 셀들의 추가 그룹을 포함할 수 있다. Temp Row 1(404-5)의 메모리 셀들의 상태들은 "Temp Row 1 비트-벡터"로서 지칭될 수 있는, 비트-벡터(480)에 대응하여 저장된 데이터 패턴을 나타내고, Temp Row 2(404-6)의 메모리 셀들의 상태들은 "Temp Row 2 비트-벡터"로서 지칭될 수 있는, 비트-벡터(482)에 대응하여 저장된 데이터 패턴을 나타낸다. 다수의 실시예에서, Mask Row(404-3), Shifted Mask Row(404-4), Temp Row 1(404-5), 및 Temp Row 2(404-6)는 사용자가 어드레싱가능하지 않을 수 있다(예를 들어, 그것들의 액세스 라인들에 접속된 셀들은 어레이(430)의 어드레싱가능한 주소의 부분이 아닐 수 있다).
도 4a 내지 도 4q는 또한 스왑 동작의 다양한 단계 동안 각각의 감지 라인들(405-0 내지 405-5)에 접속된 감지 회로(예를 들어, 도 3에 도시된 계산 구성요소들(331) 및/또는 감지 증폭기들(306))의 상태들을 예시한다. 감지 회로(450)의 상태들(예를 들어, 래치된 논리 값들)은 비트-벡터(483)에 대응하여 저장된 데이터 패턴을 나타낸다.
아래에 설명될 바와 같이, 다수의 실시예에서, 어레이(예를 들어, 어레이(430))에 저장된 스왑핑 선택된 요소들은 다수의 논리 연산, 이를테면 AND, OR, NOT, NAND, NOR, 및/또는 시프트 연산을 수행하는 것을 포함할 수 있다. 논리 연산들은 입력들로서 어레이에 저장된 데이터를 사용하여 수행될 수 있고, 데이터를 어레이로부터 예를 들어, I/O 라인을 통해 전달하지 않고도 수행될 수 있다. 다수의 실시예에서, 비트-벡터들(474-0, 474-1, 474-2, 476, 478, 480, 482, 및 483)은 선택된 요소들을 스왑핑하는 것과 연관하여 논리 연산들에 대해 피연산자로서의 역할을 한다.
아래 의사 코드는 본 발명의 다수의 실시예에 따라 메모리 내에서 다수의 스왑 동작을 수행하도록 실행가능한 명령들을 나타낸다. 예시적인 의사 코드가 참조 번호들(1 내지 4)을 사용하여 참조된다. 예를 들어, 참조 번호 일(1)은 아래 의사 코드에 제시된 바와 같이 "readRow(Mask Row)"에 대응하고, 참조 번호 이(2)는 아래 의사 코드에 제시된 바와 같이 "shift(RIGHT)"에 대응하는 등이다.
1. readRow(Mask Row);
2. shift(RIGHT);
3. writeRow(Shifted Mask Row);
4. for (n = 0; n < element width; n++) do:
a. readRow(Row(n));
b. writeRow(Temp Row 1);
c. shift(RIGHT);
d. andRow(Shifted Mask Row);
e. writeRow(Temp Row 2);
f. readRow(Shifted Mask Row);
g. inv();
h. andRow(Row(n));
i. orRow(Temp Row 2);
j writeRow(Row(n));
k. readRow(Temp Row 1);
l. andRow(Shifted Mask Row);
m. shift(LEFT);
n. writeRow(Temp Row 2);
o. readRow(Mask Row);
p. inv();
q. andRow(Row(n));
r. orRow(Temp Row 2);
s. writeRow(Row(n));
논의를 위해, 상기한 의사 코드는 셋업 단계 및 반복 단계로 구분될 것이다. 본 예에서, 도 4a 및 도 4b 및 참조 번호들(1 내지 3)로 참조되는 의사 코드는 셋업 단계에 대응한다.
도 4c 내지 도 4q 및 참조 번호들(4)(예를 들어, 4.a 내지 4.s)로 참조되는 의사 코드는 반복 단계에 대응한다. 반복 단계와 연관된 반복들의(예를 들어, "For" 루프의) 각각은 제1 단계, 제2 단계, 제3 단계, 제4 단계, 및 제5 단계로 더 구분될 수 있고, 제1 단계는 참조 번호들(4.a 및 4.b)로 참조되는 의사 코드에 대응하고, 제2 단계는 참조 번호들(4.c 내지 4.e)로 참조되는 의사 코드에 대응하고, 제3 단계는 참조 번호들(4.f 내지 4.j)로 참조되는 의사 코드에 대응하고, 제4 단계는 참조 번호들(4.k 내지 4.n)로 참조되는 의사 코드에 대응하며, 제5 단계는 참조 번호들(4.o 내지 4.s)로 참조되는 의사 코드에 대응한다. 비트-벡터들(474-0, 474-1, 474-2, 476, 478, 480, 482, 및 483)에 대응하는 데이터 패턴들은 반복 단계의 실행 동안 도 4c 내지 도 4s로 제시된다.
반복 단계는 다수의 반복 동작을 수행하는 것을 포함할 수 있다. 예를 들어, 참조 번호(4)(예를 들어, for (n = 0; n < element width; n++) do:)에 대응하는 의사 코드는 인덱스 n과 연관된 "For" 루프를 나타낸다. 인덱스 n은 초기에 제로로 설정될 수 있고(예를 들어, n=0), 각 반복 이후(예를 들어, "For" 루프의 각 반복 이후) 증분될 수 있다(예를 들어, n++). 본 예에서, "For" 루프는 n의 값이 스왑핑되는 요소들을 나타내는 비트-벡터들(488)의 폭과 동일할 때(예를 들어, 본 예에서, n = 3일 때) 종료된다. 이와 같이, "For" 루프가 수행되는 횟수(예를 들어, 반복들의 수)는 비트-벡터들(488)의 폭(예를 들어, 본 예에서 3 비트)과 동일하다. 실시예들은 특정 루프 구조 유형에 제한되지 않는다. 예를 들어, 참조 번호(4)는 다른 가능한 루프 구조들 중에서도, "while" 루프를 나타낼 수 있다.
아래에서 더 설명될 바와 같이, 본 예에서, 도 4c 내지 도 4g는 반복 단계의 제1 반복(예를 들어, 4.a 내지 4.s로 참조되는 의사 코드에 대응하는 "For" 루프의 초기 실행)에 대응하고, 도 4h 내지 도 4l은 반복 단계의 제2 반복에 대응하며, 도 4m 내지 도 4q는 반복 단계의 제3 반복에 대응한다.
위에서 설명된 바와 같이, 도 4a는 (예를 들어, 스왑 동작 이전에) 어레이(430)에 비트-벡터들(488-0 내지 488-5)로 저장된 다수의 요소를 예시한다. Mask Row 비트-벡터(476)는 스왑핑될 선택된 인접한 요소 쌍들을 정의할 수 있다. Mask Row 비트-벡터(476)는 예를 들어, 호스트로부터 제공될 수 있다. 본 예에서, 스왑핑될 요소 쌍들은 짝수 번호의 감지 라인들에 접속된 Mask Row(404-3)의 셀들이 논리 "1"을 저장하는지 여부로 정의될 수 있다. 예를 들어, 짝수 번호의 감지 라인에 대응하는 비트-벡터(476)의 비트 위치에서의 논리 "1"은 대응하는 요소(예를 들어, 특정 짝수 번호의 감지 라인에 접속된 셀들에 저장된 요소)가 인접한 요소(예를 들어, 인접한 홀수 번호의 감지 라인에 접속된 셀들에 저장된 요소)와 스왑핑될 것임을 나타낸다. 예를 들어, 도 4a에서, 비트-벡터(476)는 [101000]이며, 이는 "1"이 짝수 번호의 감지 라인들(405-0 및 405-2)에 대응하는 셀들에 저장됨을, 그리고 "0"이 홀수 번호의 감지 라인(405-4)에 대응하는 셀에 저장됨을 나타낸다. 이와 같이, Mask Row 비트-벡터(476)는 스왑핑되는 요소 쌍들을 감지 라인들(405-0 및 405-1)에 접속된 요소들, 및 감지 라인들(405-2 및 405-3)에 접속된 요소들로서 정의한다(예를 들어, 감지 라인(405-0)에 접속된 셀들에 초기에 저장된 요소가 감지 라인(405-1)에 접속된 셀들에 초기에 저장된 요소와 스왑핑되고, 감지 라인(405-2)에 접속된 셀들에 초기에 저장된 요소가 감지 라인(405-3)에 접속된 셀들에 초기에 저장된 요소와 스왑핑된다). 본 출원에서 사용될 때, "짝수 스왑 요소들"은 스왑핑될 그리고 짝수 번호의 감지 라인들(예를 들어, 짝수 번호의 컬럼들)에 접속된 셀들에 저장된 요소들을 지칭할 수 있고, "홀수 스왑 요소들"은 스왑핑될 그리고 홀수 번호의 감지 라인들(예를 들어, 짝수 번호의 컬럼들)에 접속된 셀들에 저장된 대응하는 인접한 요소들을 지칭할 수 있다. 이와 같이, 본 예에서, 비트-벡터들(488-0 및 488-2)로 표현된 요소들이 짝수 스왑 요소들로서 지칭될 수 있고, 비트-벡터들(488-1 및 488-3)로 표현된 요소들이 홀수 스왑 요소들로서 지칭될 수 있다.
도 4a 내지 도 4q에서, 비트-벡터들(474-0, 474-1, 474-2, 476, 478, 480, 482, 및 483)에 대응하는 메모리 셀들의 상태들에 대한 변경들이 강조 글꼴로 표시된다. 예를 들어, 도 4b에서, 비트-벡터(478)에 대응하는 데이터 패턴(예를 들어, 액세스 라인(404-4)에 그리고 감지 라인들(405-0 내지 405-5)에 접속된 메모리 셀들)이 비트-벡터(476)에 대응하는 논리 값들이 스왑 동작 단계 동안 변경되었음을 나타내기 위해 강조 글꼴로 제시된다.
도 4a 내지 도 4q와 연관하여 설명된 스왑 동작의 셋업 단계는 참조 번호들(1 내지 3)에 대응하는 의사 코드의 실행을 포함할 수 있다. 참조 번호들(1 내지 3)에 대응하는 의사 코드는 시프트된 마스크를 생성하는 것 및 그것을 어레이(430)에 저장하는 것(예를 들어, 그것을 비트-벡터(478)로 Shifted Mask Row(404-4)에 저장하는 것)과 연관된다. 시프트된 마스크는 홀수 스왑 요소(예를 들어, 본 예에서, 홀수 번호의 감지 라인들(405-1 및 405-3)에 대응하고 각각의 비트-벡터들(488-1 및 488-3)로 표현된 요소들)를 구분하는 데 사용될 수 있다.
참조 번호(1)에 대응하는 의사 코드(예를 들어, "readRow(Mask Row)")는 Mask Row 비트-벡터(476)(예를 들어, [101000])로 저장된 데이터 패턴을 감지 회로(450)(예를 들어, 비트-벡터(483)에 대응하는 계산 구성요소들(331-0 내지 331-5) 및/또는 감지 증폭기들(306-0 내지 306-5))로 판독하는 것을 수반한다. 본 출원에서 사용될 때, 비트-벡터를 감지 회로에 저장하는 것은 비트-벡터를 감지 회로와 연관된 다수의 계산 구성요소에 그리고/또는 감지 회로와 연관된 다수의 감지 증폭기에 저장하는 것으로서 정의된다.
참조 번호(2)에 대응하는 의사 코드(예를 들어, "shift(RIGHT)")는 비트-벡터(483)에 대해 SHIFT 연산을 수행하는 것과 연관된다. SHIFT 연산은 감지 회로(450)에 저장된 비트들을 오른쪽으로 1 비트 위치 시프트한다. 본 예에서, SHIFT 연산 이전에, 비트-벡터(483)는 [101000](예를 들어, 비트-벡터(483)에 대응하여 감지 회로(450)로 판독되었던 Mask Row 비트-벡터(476)에 대응하는 데이터 패턴)이다. SHIFT 연산 이후 그리고 도 4b에 도시된 바와 같이, 비트-벡터(483) 는 [010100]이다.
참조 번호(3)에 대응하는 의사 코드(예를 들어, "writeRow(Temp Row 1)")는 감지 회로(450)에 (예를 들어, 비트-벡터(483)로서) 저장된 데이터 패턴을 Shifted Mask Row 비트-벡터(478)를 저장하는 셀들에 기록하는 것과 연관된다. 아래에서 더 설명될 바와 같이, 비트-벡터(483)에 대응하는 데이터 패턴은 예를 들어, 액세스 라인(404-4)을 활성화함으로써 감지 회로(450)로부터 비트-벡터(478)를 저장하는 셀들(예를 들어, 액세스 라인(404-4)에 접속된 셀들)로 복사될 수 있다. 도 4b에 도시된 바와 같이, 비트-벡터(476)에 대응하는 데이터 패턴(예를 들어, [101000])에 대해 수행된 SHIFT 연산의 결과인, 비트-벡터(483)에 대응하는 데이터 패턴(예를 들어, [010100])이 Shifted Mask Row(478)에 대응하는 메모리 셀들에 저장된다. 예를 들어, Shifted Mask Row 비트-벡터(478)는 [010100]이다.
도 4c 내지 도 4g는 반복 단계의 제1 반복(예를 들어, 4.a 내지 4.s로 참조된 의사 코드에 대응하고 인덱스 n이 0인 "For" 루프의 초기 반복)에 대응한다. 제1 반복의 제1 단계는 참조 번호들(4.a 및 4.b)로 참조된 의사 코드 및 도 4c에 대응하고, Temp Row 1 비트-벡터(480)에 대응하는 셀들에 "Row n 비트-벡터"의 데이터 패턴을 저장하는 것과 연관된다. 예를 들어, 스왑핑될 데이터를 포함하는 셀들(예를 들어, 액세스 라인(404-0)에 접속된 셀들)의 제1 로우에 저장된 데이터의 복사본이 Temp Row 1 비트-벡터(480)에 대응하는 셀들에 저장된다. 이러한 반복(예를 들어, 제1 반복) 동안, 인덱스 "n"은 0(예를 들어, "For" 루프의 제1 반복 동안 n = 0)이다. 의사 코드의 참조 번호(4.a)(예를 들어, "readRow(Row(n))")에서, "Row n 비트-벡터"에 대응하는 데이터 패턴이 비트-벡터(483)에 대응하는 감지 회로로 판독된다. "For" 루프의 제1 반복 동안 n = 0이기 때문에, Row 0 비트-벡터(474-0)에 대응하는 데이터 패턴(예를 들어, [110000])이 감지 회로(450)로 판독되고, 그에 따라 비트-벡터(483)는 도 4c에 도시된 바와 같이, [110000]이 된다. 의사 코드의 참조 번호(4.b)(예를 들어, "writeRow(Temp Row 1)")에서, 비트-벡터(483)에 대응하는 데이터 패턴이 Temp Row 1 비트-벡터(480)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 1 비트-벡터(480)는 도 4c에 도시된 바와 같이 [110000]이다.
도 4d 및 참조 번호들(4.c 내지 4.e)로 참조되는 의사 코드는 반복 단계의 제2 단계에 대응하고 비트-벡터(483)에 대해 시프트 연산을 수행하는 것, 시프트된 비트-벡터를 Shifted Mask Row 비트-벡터(478)와 "AND"하는 것, 및 그 결과로 생긴 데이터 패턴을 Temp Row 2 비트-벡터(482)에 대응하는 셀들에 저장하는 것과 연관된다. 의사 코드의 참조 번호(4.c)(예를 들어, "shift(RIGHT)"))에서, 비트-벡터(483)로 저장된 데이터 패턴이 오른쪽으로 1 비트-위치 시프트되고, 그에 따라 비트-벡터(483)(이는 오른쪽으로 1 비트 위치 시프트되는 이전 비트-벡터(483)(예를 들어, [110000])임)는 [011000]이 된다. 참조 번호(4.d)(예를 들어, "andRow(Shifted Mask Row)")에서, 비트-벡터(478)(예를 들어, [010100]) 및 비트-벡터(483)(예를 들어, [011000])에 대해 AND 연산이 수행된다.
본 출원에서 사용될 때, 제1 및 제2 비트-벡터에 대해 논리 연산을 수행하는 것은 병렬적으로, 비트-벡터들의 대응하는 비트 위치들의 각각의 비트들의 각각에 대해 논리 연산을 수행하는 것을 포함할 수 있다. 예로서, 제1 비트-벡터 "a"(예를 들어, [a0 a1 a2 a3]) 및 제2 비트-벡터 "b"(예를 들어, [b0 b1 b2 b3])에 대해 수행되는 논리 OR 연산의 결과는 제3 비트-벡터 "c"(예를 들어, [c0 c1 c2 c3])이며, 이때 c0 = a0 OR b0, c1 = a1 OR b1, c2 = a2 OR b2, 그리고 c3 = a3 OR b3이다. 인스턴스, 비트-벡터([1110])에 대해 그리고 비트-벡터([1000])에 대해 OR 연산을 수행하면 그 결과는 비트-벡터([1110])가 된다(예를 들어, 그 결과로 생긴 비트-벡터의 가장 왼쪽 비트는 "1" OR "1"이 "1"이므로 "1"이고, 그 다음 비트는 "1" OR "0"이 "1"이므로 "1"이고, 그 다음 비트는 "1" OR "0"이 "1"이므로 "1"이며, 가장 오른쪽 비트는 "0" OR "0"이 "0"이므로 "0"이다).
본 예에서, 비트-벡터들(478 및 483)을 "AND"(예를 들어, [010100] AND [011000])하면 그 결과 [010000]이 비트-벡터(483)로 저장된다(예를 들어, AND 연산의 결과가 감지 회로(450)에 저장된다). 이와 같이, 비트-벡터(483)는 도 4d에 도시된 바와 같이 [010000]이다. 참조 번호(4.e)(예를 들어, "writeRow(Temp Row 2)")에서, 비트-벡터(483)에 대응하는 데이터 패턴이 Temp Row 2 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 2 비트-벡터(482)는 도 4d에 도시된 바와 같이 [010000]이다. 제2 단계에 대해 동일한 결과가 비트-벡터(483)(Row 0 비트-벡터(474-0)에 대응하는 데이터 패턴을 저장한)를 Mask Row 비트-벡터(476)와 "AND"하는 것, 그리고 그 다음 Temp Row 2 비트-벡터(482)로 복사하기 전에 비트-벡터(483)에 대해 우측 시프트를 수행하는 것에 의해 획득될 수 있다.
도 4e 및 참조 번호들(4.f 내지 4.j)로 참조되는 의사 코드는 반복 단계의 제3 단계에 대응하고 Shifted Mask Row 비트-벡터(478)에 대응하는 데이터 패턴에 대해 인버트 연산을 수행하는 것, 인버트 연산의 결과 및 Row n 비트-벡터(예를 들어, 이러한 반복 동안 474-0)에 대해 AND 연산을 수행하는 것, AND 연산의 결과 및 Temp Row 2 비트-벡터(482)에 대해 OR 연산을 수행하는 것, 및 OR 연산의 결과를 다시 Row n 비트-벡터를 저장하는 셀들에 기록하는 것과 연관된다. 의사 코드의 참조 번호(4.f)(예를 들어, "readRow(Shifted Mask Row)")에서, 비트-벡터(478)로 저장된 데이터 패턴은 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [010100]이 된다. 의사 코드의 참조 번호(4.g)(예를 들어, "inv()")에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [101011](예를 들어, 그것의 이전 데이터 패턴의 역)을 저장하게 된다. 의사 코드의 참조 번호(4.h)(예를 들어, "andRow(Row(n))")에서, 비트-벡터(483)(예를 들어, [101011]) 및 비트-벡터(474-0)(예를 들어, [110000])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [100000]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [100000])는 Temp Row 2 비트-벡터(482)(예를 들어, [010000])와 OR되며, 그 결과(예를 들어, [110000])는 비트-벡터(483)로서 감지 회로(450)에 유지된다. OR 연산의 결과(예를 들어, [110000])는 비트-벡터(474-0)를 저장하는 셀들로 복사된다. 이와 같이, 도 4e에 도시된 바와 같이, 제3 단계 이후 비트-벡터들(474-0 및 483)은 [110000]이다.
도 4f 및 참조 번호들(4.k 내지 4.n)로 참조되는 의사 코드는 반복 단계의 제4 단계에 대응하고 Shifted Mask Row 비트-벡터(478) 및 Temp Row 1 비트-벡터(480)에 대해 AND 연산을 수행하는 것, AND 연산의 결과를 왼쪽으로 1 비트 위치 시프트하는 것, 및 좌측 시프트의 결과를 Temp Row 2 비트-벡터(482)을 저장하는 셀들에 기록하는 것과 연관된다. 의사 코드의 참조 번호(4.k)(예를 들어, "readRow(Temp Row 1)")에서, 비트-벡터(480)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [110000]이 된다. 의사 코드의 참조 번호(4.l)(예를 들어, "andRow(Shifted Mask Row)")에서, 비트-벡터(483)(예를 들어, [110000]) 및 비트-벡터(478)(예를 들어, [010100])에 대해 AND 연산이 수행되며, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [010000]이 된다. 의사 코드의 참조 번호(4.m)(예를 들어, "shift(LEFT)")에서, 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [010000])가 왼쪽으로 1 비트 위치 시프트되고, 그에 따라 비트-벡터(483)는 [100000]이 된다. 의사 코드의 참조 번호(4.n)(예를 들어, "writeRow(Temp Row 2)")에서, 좌측 시프트 연산의 결과(예를 들어, [100000])가 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, 도 4f에 도시된 바와 같이, 제4 단계 이후 비트-벡터들(482 및 483)은 [100000]이다.
도 4g 및 참조 번호들(4.o 내지 4.s)로 참조되는 의사 코드는 반복 단계의 제5 단계에 대응하고 Mask Row 비트-벡터(476)에 대응하는 데이터 패턴에 대해 인버트 연산을 수행하는 것, 인버트 연산의 결과 및 Row n 비트-벡터(예를 들어, 이러한 반복 동안 474-0)에 대해 AND 연산을 수행하는 것, AND 연산의 결과 및 Temp Row 2 비트-벡터(482)에 대해 OR 연산을 수행하는 것, 및 OR 연산의 결과를 다시 Row n 비트-벡터를 저장하는 셀들에 기록하는 것과 연관된다. 의사 코드의 참조 번호(4.o)(예를 들어, "readRow(Mask Row)")에서, 비트-벡터(476)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [101000]이 된다. 의사 코드의 참조 번호(4.p)(예를 들어, "inv()")에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [0101111](예를 들어, 그것의 이전 데이터 패턴 데이터 패턴의 역)을 저장하게 된다. 의사 코드의 참조 번호(4.q)(예를 들어, "andRow(Row(n))")에서, 비트-벡터(483)(예를 들어, [010111]) 및 비트-벡터(474-0)(예를 들어, [110000])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [010000]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [010000])는 Temp Row 2 비트-벡터(482)(예를 들어, [100000])와 OR되며, 그 결과(예를 들어, [110000])는 비트-벡터(483)로 감지 회로(450)에 유지된다.OR 연산의 결과(예를 들어, [110000])는 비트-벡터(474-0)를 저장하는 셀들로 복사된다. 이와 같이, 도 4G에 도시된 바와 같이, 제5 단계 이후 비트-벡터들(474-0 및 483)은 [110000]이다.
도 4g는 참조 번호(4)와 연관된 "For" 루프의 제1 반복 이후 어레이(430)의 메모리 셀들의 상태들을 도시한다. "For" 루프의 제1 반복 이후, 비트-벡터(488-0)(예를 들어, 비트-벡터 [011])로부터의 1-비트가 비트-벡터(488-1)(예를 들어, 비트-벡터 [001])로부터의 1-비트와 스왑핑되고, 비트-벡터(488-2)(예를 들어, 비트-벡터 [010])로부터의 0-비트가 비트-벡터(488-3)(예를 들어, 비트-벡터 [100])로부터의 0-비트와 스왑핑된다. 도 4h 내지 도 4l은 참조 번호(4)와 연관된 "For" 루프의 제2 반복 이후 어레이(430)의 메모리 셀들의 상태들을 도시한다.
도 4h 내지 도 4l은 반복 단계의 제2 반복에 대응한다. 이러한 반복(예를 들어, 제2 반복) 동안, 인덱스 "n"은 1(예를 들어, "For" 루프의 제2 반복 동안 n=1)이다. 제2 반복의 제1 단계는 참조 번호들(4.a 및 4.b)로 참조되는 의사 코드 및 도 4h에 대응한다. 의사 코드의 참조 번호(4.a)(예를 들어, "readRow(Row(n))")에서, "Row n 비트-벡터"에 대응하는 데이터 패턴이 비트-벡터(483)에 대응하는 감지 회로로 판독된다. "For" 루프의 제2 반복 동안 n = 1이기 때문에, Row 1 비트-벡터(474-1)에 대응하는 데이터 패턴(예를 들어, [101001])이 감지 회로(450)로 판독되고, 그에 따라 비트-벡터(483)는 도 4h에 도시된 바와 같이, [101001]이 된다. 참조 번호(4.b)에서, 비트-벡터(483)에 대응하는 데이터 패턴이 Temp Row 1 비트-벡터(480)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 1 비트-벡터(480)는 도 4h에 도시된 바와 같이 [101001]이다. 참조 번호(4.b)에서, Temp Row 1 비트-벡터(480)는 도 4h에 도시된 바와 같이 [101001]이다.
도 4i 및 참조 번호들(4.c 내지 4.e)로 참조되는 의사 코드는 제2 반복의 제2 단계에 대응한다. 참조 번호(4.c)에서, 비트-벡터(483)로 저장된 데이터 패턴이 오른쪽으로 1 비트-위치 시프트되고, 그에 따라 비트-벡터(483)(이는 오른쪽으로 1 비트 위치 시프트되는 이전 비트-벡터(483)(예를 들어, [101001])임)는 [010100]이 된다. 참조 번호(4.d)에서, 비트-벡터(478)(예를 들어, [010100]) 및 비트-벡터(483)(예를 들어, [010100])에 대해 AND 연산이 수행된다. AND 연산의 결과(예를 들어, [010100])는 비트-벡터(483)로 감지 회로(450)에 저장된다. 이와 같이, 비트-벡터(483)는 도 4i에 도시된 바와 같이 [010100]이다. 참조 번호(4.e)에서, 비트-벡터(483)가 Temp Row 2 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 2 비트-벡터(482)는 도 4i에 도시된 바와 같이 [010100]이다.
도 4j 및 참조 번호들(4.f 내지 4.j)로 참조되는 의사 코드는 제2 반복의 제3 단계에 대응한다. 참조 번호(4.f)에서, 비트-벡터(478)로 저장된 데이터 패턴은 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [010100]이 된다. 참조 번호(4.g)(예를 들어, "inv()")에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [101011](예를 들어, 그것의 이전 데이터 패턴의 역)을 저장하게 된다. 참조 번호(4.h)에서, 비트-벡터(483)(예를 들어, [101011]) 및 비트-벡터(474-1)(예를 들어, [101001])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [101001]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [101001])는 Temp Row 2 비트-벡터(482)(예를 들어, [010100])와 OR되며, 그 결과(예를 들어, [111101])는 비트-벡터(483)로서 감지 회로(450)에 유지된다.OR 연산의 결과(예를 들어, [111101])는 비트-벡터(474-1)를 저장하는 셀들로 복사된다. 이와 같이, 도 4e에 도시된 바와 같이, 제3 단계 이후 비트-벡터들(474-1 및 483)은 [111101]이다.
도 4k 및 참조 번호들(4.k 내지 4.n)로 참조되는 의사 코드는 제2 반복의 제4 단계에 대응한다. 참조 번호(4.k)에서, 비트-벡터(480)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [101001]이 된다. 참조 번호(4.l)에서, 비트-벡터(483)(예를 들어, [101001]) 및 비트-벡터(478)(예를 들어, [010100])에 대해 AND 연산이 수행되며, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [000000]이 된다. 참조 번호(4.m)에서, 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [000000])가 왼쪽으로 1 비트 위치 시프트되고, 그에 따라 비트-벡터(483)는 [000000]이 된다. 참조 번호(4.n)에서, 좌측 시프트 연산의 결과(예를 들어, [000000])가 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, 도 4f에 도시된 바와 같이, 제4 단계 이후 비트-벡터들(482 및 483)은 [000000]이다.
도 4l 및 참조 번호들(4.o 내지 4.s)로 참조되는 의사 코드는 제2 반복의 제5 단계에 대응한다. 참조 번호(4.o)에서, 비트-벡터(476)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [101000]이 된다. 참조 번호(4.p)에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [010111](예를 들어, 그것의 이전 데이터 패턴 데이터 패턴의 역)을 저장하게 된다. 참조 번호(4.q)에서, 비트-벡터(483)(예를 들어, [010111]) 및 비트-벡터(474-1)(예를 들어, [111101])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [010101]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [010101])는 Temp Row 2 비트-벡터(482)(예를 들어, [000000])와 OR되며, 그 결과(예를 들어, [010101])는 비트-벡터(483)로 감지 회로(450)에 유지된다.OR 연산의 결과(예를 들어, [010101])는 비트-벡터(474-1)를 저장하는 셀들로 복사된다. 이와 같이, 도 4l에 도시된 바와 같이, 제5 반복 이후 비트-벡터들(474-1 및 483)은 [010101]이다.
도 4l은 참조 번호(4)와 연관된 "For" 루프의 제2 반복 이후 어레이(430)의 메모리 셀들의 상태들을 도시한다. "For" 루프의 제2 반복 이후, 비트-벡터(488-0)(예를 들어, 제2 반복 이전 [011])로부터의 1-비트가 비트-벡터(488-1)(예를 들어, 제2 반복 이전 [001])로부터의 0-비트와 스왑핑되고, 비트-벡터(488-2)(예를 들어, 제2 반복 이전 [010])로부터의 1-비트가 비트-벡터(488-3)(예를 들어, 제2 반복 이전 [100])로부터의 0-비트와 스왑핑된다. 도 4m 내지 도 4q는 참조 번호(4)와 연관된 "For" 루프의 제3 반복 이후 어레이(430)의 메모리 셀들의 상태들을 도시한다.
도 4m 내지 도 4q는 반복 단계의 제3 반복(예를 들어, 4.a 내지 4.s로 참조된 의사 코드에 대응하고 인덱스 n이 2인 "For" 루프의 초기 반복)에 대응한다. 제3 반복의 제1 단계는 참조 번호들(4.a 및 4.b)로 참조된 의사 코드 및 도 4m에 대응하고, Temp Row 1 비트-벡터(480)에 대응하는 셀들에 "Row n 비트-벡터"의 데이터 패턴을 저장하는 것과 연관된다.예를 들어, 스왑핑될 데이터를 포함하는 셀들(예를 들어, 액세스 라인(404-2)에 접속된 셀들)의 제3 로우에 저장된 데이터의 복사본이 Temp Row 1 비트-벡터(480)에 대응하는 셀들에 저장된다. 이러한 반복(예를 들어, 제3 반복) 동안, 인덱스 "n"은 2(예를 들어, "For" 루프의 제3 반복 동안 n = 2)이다. 의사 코드의 참조 번호(4.a)(예를 들어, "readRow(Row(n))")에서, "Row n 비트-벡터"에 대응하는 데이터 패턴이 비트-벡터(483)에 대응하는 감지 회로로 판독된다. "For" 루프의 제3 반복 동안 n = 2이기 때문에, Row 2 비트-벡터(474-2)에 대응하는 데이터 패턴(예를 들어, [000110])이 감지 회로(450)로 판독되고, 그에 따라 비트-벡터(483)는 도 4m에 도시된 바와 같이, [000110]이 된다. 참조 번호(4.b)에서, 비트-벡터(483)에 대응하는 데이터 패턴이 Temp Row 1 비트-벡터(480)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 1 비트-벡터(480)는 도 4m에 도시된 바와 같이 [000110]이다.
도 4n 및 참조 번호들(4.c 내지 4.e)로 참조되는 의사 코드는 제3 반복의 제2 단계에 대응한다. 참조 번호(4.c)에서, 비트-벡터(483)로 저장된 데이터 패턴이 오른쪽으로 1 비트-위치 시프트되고, 그에 따라 비트-벡터(483)(이는 오른쪽으로 1 비트 위치 시프트되는 이전 비트-벡터(483)(예를 들어, [000110])임)는 [000011]이 된다. 참조 번호(4.d)에서, 비트-벡터(478)(예를 들어, [010100]) 및 비트-벡터(483)(예를 들어, [000011])에 대해 AND 연산이 수행된다. 비트-벡터들(478 및 483)을 "AND"(예를 들어, [010100] AND [000011])하면 그 결과 [000000]이 비트-벡터(483)로 저장된다(예를 들어, AND 연산의 결과가 감지 회로(450)에 저장된다). 이와 같이, 비트-벡터(483)는 도 4n에 도시된 바와 같이 [000000]이다. 참조 번호(4.e)에서, 비트-벡터(483)가 Temp Row 2 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, Temp Row 2 비트-벡터(482)는 도 4n에 도시된 바와 같이 [000000]이다.
도 4o 및 참조 번호들(4.f 내지 4.j)로 참조되는 의사 코드는 제3 반복의 제3 단계에 대응한다. 참조 번호(4.f)에서, 비트-벡터(478)로 저장된 데이터 패턴은 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [010100]이 된다. 참조 번호(4.g)에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [101011](예를 들어, 그것의 이전 데이터 패턴의 역)을 저장하게 된다. 참조 번호(4.h)에서, 비트-벡터(483)(예를 들어, [101011]) 및 비트-벡터(474-2)(예를 들어, [000110])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [000010]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [000010])는 Temp Row 2 비트-벡터(482)(예를 들어, [000000])와 OR되며, 그 결과(예를 들어, [000010])는 비트-벡터(483)로서 감지 회로(450)에 유지된다.OR 연산의 결과(예를 들어, [000010])는 비트-벡터(474-2)를 저장하는 셀들로 복사된다. 이와 같이, 도 4o에 도시된 바와 같이, 제3 단계 이후 비트-벡터들(474-2 및 483)은 [000010]이다.
도 4p 및 참조 번호들(4.k 내지 4.n)로 참조되는 의사 코드는 제3 반복의 제4 단계에 대응한다. 참조 번호(4.k)에서, 비트-벡터(480)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [000110]이 된다. 참조 번호(4.l)에서, 비트-벡터(483)(예를 들어, [0000110]) 및 비트-벡터(478)(예를 들어, [010100])에 대해 AND 연산이 수행되며, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [000100]이 된다. 참조 번호(4.m)에서, 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [000100])가 왼쪽으로 1 비트 위치 시프트되고, 그에 따라 비트-벡터(483)는 [001000]이 된다. 참조 번호(4.n)에서, 좌측 시프트 연산의 결과(예를 들어, [001000])가 비트-벡터(482)를 저장하는 셀들로 복사된다. 이와 같이, 도 4f에 도시된 바와 같이, 제4 단계 이후 비트-벡터들(482 및 483)은 [001000]이다.
도 4q 및 참조 번호들(4.o 내지 4.s)로 참조되는 의사 코드는 제3 반복의 제5 단계에 대응한다. 참조 번호(4.o)에서, 비트-벡터(476)로 저장된 데이터 패턴이 감지 회로(450)로 판독되고 그에 따라 비트-벡터(483)는 [101000]이 된다. 참조 번호(4.p)에서, 비트-벡터(483)에 대해 인버트 연산이 수행되고 그에 따라 비트-벡터(483)는 [010111](예를 들어, 그것의 이전 데이터 패턴 데이터 패턴의 역)을 저장하게 된다. 참조 번호(4.q)에서, 비트-벡터(483)(예를 들어, [010111]) 및 비트-벡터(474-2)(예를 들어, [001010])에 대해 AND 연산이 수행되고, 그 결과는 감지 회로(450)에 유지되며 그에 따라 비트-벡터(483)는 [000010]이 된다. 비트-벡터(483)로 저장되는, AND 연산의 결과(예를 들어, [000010])는 Temp Row 2 비트-벡터(482)(예를 들어, [001000])와 OR되며, 그 결과(예를 들어, [000110])는 비트-벡터(483)로 감지 회로(450)에 유지된다.OR 연산의 결과(예를 들어, [000110])는 비트-벡터(474-2)를 저장하는 셀들로 복사된다. 이와 같이, 도 4g에 도시된 바와 같이, 제5 반복 이후 비트-벡터들(474-2 및 483)은 [000110]이다.
도 4q는 참조 번호(4)와 연관된 "For" 루프의 제3 반복 이후 어레이(430)의 메모리 셀들의 상태들을 도시한다. "For" 루프의 제3 반복 이후, 비트-벡터(488-0)(예를 들어, 제1 반복 이전 [011])로부터의 0-비트가 비트-벡터(488-1)(예를 들어, 제1 반복 이전 [001])로부터의 0-비트와 스왑핑되고, 비트-벡터(488-2)(예를 들어, 제1 반복 이전 [010])로부터의 0-비트가 비트-벡터(488-3)(예를 들어, 제1 반복 이전 [100])로부터의 1-비트와 스왑핑된다.
3의 요소 폭과 상이한 요소를 갖는 요소들을 갖는 예들에서는 본 출원에 제시된 동작들보다 보다 많거나 보다 적은 동작들의 반복이 수행될 수 있다. 예를 들어, 요소들(488)이 3 대신 4의 요소 폭을 갖는다면, 동작들의 4회 반복이 수행될 수 있다.
뿐만 아니라, 스왑 동작은 4개 보다 많은 요소를 스왑핑(예를 들어, 비트-벡터(488-0)를 비트-벡터(488-1)와 그리고 비트-벡터(488-2)를 비트-벡터(488-3)와 스왑핑)할 수 있다. 예를 들어, 스왑 동작은 6개의 요소, 8개의 요소, 10개의 요소 등을 스왑핑할 수 있다.
그러나 실시예들은 본 예에서의 의사 코드에서의 명령들의 시퀀스의 순서에 제한되지 않는다. 예를 들어, 참조 번호들(4.c 내지 4.j)로 참조되는 다수의 동작이 참조 번호들(4.k 내지 4.q)로 참조되는 다수의 동작이 수행되기 전에 수행될 수 있다.
도 2a의 감지 회로(250)의 기능은 논리 연산들을 수행하는 것 및 초기에 결과를 감지 증폭기(206)에 저장하는 것에 대하여 아래에서 설명되고 아래의 표 1에 요약된다. 초기에 특정 논리 연산의 결과를 감지 증폭기(206)의 일차 래치에 저장하면 초기에 결과를 계산 구성요소(231)의 이차 래치(예를 들어, 누산기)에 위치시키고, 그 다음 예를 들어, 그 후 감지 증폭기(206)로 전달하는 이전 접근법들과 비교할 때 개선된 다용성을 제공할 수 있다.
연산 누산기 감지 앰프
AND 불변 결과
OR 불변 결과
NOT 불변 결과
SHIFT 불변 시프트된 데이터
초기에 특정 연산의 결과를 (예를 들어, 계산 구성요소(231)(예를 들어, 누산기)로부터 결과를 감지 증폭기(206)로 이동하는 추가 연산을 수행하지 않고) 감지 증폭기(206)에 저장하는 것이 바람직한데, 이는 예를 들어, 결과가 (예를 들어, 상보적 데이터 라인들(205-1(D) 및/또는 205-2(D_))에 대해) 프리차지 사이클을 수행하지 않고 (메모리 셀들의 어레이의) 로우에 또는 다시 누산기에 기록될 수 있기 때문이다.
도 5는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다. 도 5는 제1 피연산자 및 제2 피연산자에 대해 AND 논리 연산을 개시하는 것과 연관된 타이밍 선도를 예시한다.  본 예에서, 제1 피연산자는 제1 액세스 라인(예를 들어, ROW X)에 접속된 메모리 셀에 저장되고, 제2 피연산자는 제2 액세스 라인(예를 들어, ROW Y)에 접속된 메모리 셀에 저장된다.  예가 하나의 특정 컬럼에 대응하는 셀들에 저장된 데이터에 대해 AND를 수행하는 것을 나타내지만, 실시예들은 그에 제한되지 않는다.  예를 들어, 데이터 값들의 전체 로우가 데이터 값들의 상이한 로우와 병렬적으로 AND될 수 있다.  예를 들어, 어레이가 2,048개의 컬럼을 포함한다면, 2,048개의 AND 연산이 병렬적으로 수행될 수 있다.
도 5는 AND 논리 연산을 수행하기 위한 감지 회로(예를 들어, 250)를 작동시키는 것과 연관된 다수의 제어 신호를 예시한다. "EQ"는 감지 앰프(206)에 인가된 평형화 신호에 대응하고, "ROW X"는 액세스 라인(204-X)에 인가된 활성화 신호에 대응하고, "ROW Y"는 액세스 라인(204-Y)에 인가된 활성화 신호에 대응하고, "Act" 및 "RnIF"는 감지 앰프(206)에 인가된 각각의 활성 포지티브 및 네거티브 제어 신호에 대응하고, "LOAD"는 로딩 제어 신호(예를 들어, 도 2a에 도시된 LOAD/PASSD 및 LOAD/PASSDb)에 대응하며, "AND"는 도 2a에 도시된 AND 제어 신호에 대응한다. 도 5는 또한 Row X 및 Row Y의 데이터 값들의 다양한 데이터 값의 조합에 대한 AND 논리 연산 동안 감지 앰프(206)에 대응하는 디지트 라인들(D 및 D_) 상의 신호들 및 계산 구성요소(231)(예를 들어, Accum)에 대응하는 노드들(S1 및 S2) 상의 신호들(예를 들어, 전압 신호들)을 도시한 파형 도표들을 예시한다(예를 들어, 도표들은 각각의 데이터 값의 조합들(00, 10, 01, 11)에 대응한다). 특정 타이밍 선도 파형들은 도 2a에 도시된 회로의 AND 연산과 연관된 의사 코드에 대하여 아래에서 논의된다.
행(204-X)에 접속된 셀에 저장된 제1 데이터 값을 누산기로 로딩하는 (예를 들어, 복사하는) 것과 연관된 예시적인 의사 코드는 다음과 같이 요약될 수 있다:
Row X를 누산기로 복사:
EQ를 비활성화
Row X를 개방;
감지 앰프들을 점호(이후 Row X의 데이터는 감지 앰프들에 위치함);
LOAD를 활성화(감지 증폭기의 데이터(Row X)는 누산기의 노드들(S1 및 S2)로 전달되고 그곳에 동적으로 위치함);
LOAD를 비활성화;
Row X를 비활성화
프리차지;
상기한 의사 코드에서, "EQ를 비활성화"는 감지 증폭기(206)에 대응하는 평형화 신호(도 5에 도시된 EQ 신호)가 도 5에 도시된 바와 같이 t1에서 디스에이블되는(예를 들어, 상보적 데이터 라인들(예를 들어, 205-1(D) 및 205-2(D_)이 더 이상 VDD/2에 단락되지 않게 되는) 것을 나타낸다. 평형화가 디스에이블된 후, 의사 코드에서 "ROW X를 개방"으로 나타내고 도 5의 신호(Row X)에 대해 t2에 도시된 바와 같이 선택된 로우(예를 들어, ROW X)가 인에이블(예를 들어, 이를테면 특정 로우를 선택하기 위해 신호를 활성화함으로써 개방, 선택)된다. ROW X에 인가되는 전압 신호가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들어, 202-2)의 문턱 전압(Vt)에 도달할 때, 액세스 트랜지스터가 턴 온되고 데이터 라인(예를 들어, 205-2(D_))을 데이터 라인들 간 차동 전압 신호를 생성하는 선택된 셀에(예를 들어, 커패시터(203-2)에) 접속시킨다.
상기한 의사 코드에서 "Row X가 인에이블(예를 들어, 활성화)된 후, "감지 앰프들을 점호"는 감지 증폭기(206)가 인에이블되어 일차 래치를 설정하고 그 후 디스에이블되는 것을 나타낸다. 예를 들어, 도 5의 t3에 도시된 바와 같이, ACT 포지티브 제어 신호(예를 들어, 도 2b에 도시된 265)는 하이(high)로 가고 RnIF 네거티브 제어 신호(예를 들어, 도 2b에 도시된 228)는 로우(low)로 가며, 이는 205-1(D) 및 D_(205-2) 간 차동 신호를 증폭시켜, 논리 1에 대응하는 전압(예를 들어, VDD) 또는 논리 0에 대응하는 전압(예를 들어, GND)이 데이터 라인(205-1(D)) 상에 존재하게 된다(그리고 다른 논리 상태에 대응하는 전압은 상보적 데이터 라인(205-2(D_)) 상에 존재하게 된다). 감지된 데이터 값은 감지 증폭기(206)의 일차 래치에 저장된다. 일차 에너지 소비는 데이터 라인들(예를 들어, 205-1(D) 또는 205-2(D_))을 평형화 전압(VDD/2)에서 레일 전압(VDD)으로 충전하면서 발생한다.
도 5에 예시된 감지 증폭기 및 누산기 신호들의 가능한 네 가지 세트(예를 들어, Row X 및 Row Y를 각각 조합한 세트)는 데이터 라인들(D 및 D_) 상의 신호의 거동을 나타낸다. Row X의 데이터 값은 감지 앰프의 일차 래치에 저장된다. 도 2a는 Row X에 대응하여 저장 소자(203-2) 및 액세스 트랜지스터(202-2)를 포함하는 메모리 셀이 상보적 데이터 라인(D_)에 접속되는 한편, Row Y에 대응하여 저장 소자(203-1) 및 액세스 트랜지스터(202-1)를 포함하는 메모리 셀이 데이터 라인(D)에 접속되는 것을 도시하고 있음을 주의해야 한다. 그러나, 도 2a에서 알 수 있는 바와 같이, "0"의 데이터 값에 대응하여 (Row X에 대응하는) 액세스 트랜지스터(202-2)를 포함하는 메모리 셀에 저장된 전하는 (액세스 트랜지스터(202-2)가 접속되는) 데이터 라인(D_) 상의 전압이 하이가 되게 하고 "1"의 데이터 값에 대응하는 액세스 트랜지스터(202-2)를 포함하는 메모리 셀에 저장된 전하는 데이터 라인(D_) 상의 전압이 로우가 되게 하며, 이는 데이터 라인(D)에 접속된, Row Y에 대응하는, 액세스 트랜지스터(202-1)를 포함하는 메모리 셀에 저장된 데이터 상태들 및 전하 사이에서 정반대로 대응한다. 상이한 데이터 라인들에 접속된 메모리 셀들에 전하를 저장함에 있어서의 이들 차이는 각각의 메모리 셀들에 데이터 값들을 기록할 때 적절하게 고려된다.
상기한 의사 코드에서, 감지 앰프들은 점호한 후, "LOAD를 활성화"는 도 5의 t4에 도시된 바와 같이 LOAD 제어 신호가 하이로 가, 로딩/패스 트랜지스터(218-1 및 218-2)가 도통하게 하는 것을 나타낸다. 이러한 방식으로, LOAD 제어 신호가 활성화되면 계산 구성요소(231)의 누산기 내의 이차 래치가 인에이블된다. 감지 증폭기(206)에 저장된 감지된 데이터 값은 이차 래치로 전달(예를 들어, 복사)된다. 도 5에 예시된 감지 증폭기 및 누산기 신호들의 네 가지 가능한 세트의 각각에 대해 나타낸 바와 같이, 누산기의 이차 래치의 입력들에서의 거동은 이차 래치에 Row X의 데이터 값이 로딩되는 것을 나타낸다. 도 5에 도시된 바와 같이, 누산기의 이차 래치는 다이나믹 래치에 이전에 저장된 데이터 값에 따라, 플립핑될 수 있거나(예를 들어, Row X = "0" 및 Row Y = "0"에 대한 그리고 Row X = "1" 및 Row Y = "0"에 대한 누산기 신호들 참조), 또는 플립핑되지 않을 수 있다(예를 들어, Row X = "0" 및 Row Y = "1"에 대한 그리고 Row X = "1" 및 Row Y = "1"에 대한 누산기 신호들 참조).
감지 증폭기에 저장된(그리고 데이터 라인들(205-1(D) 및 205-2(D_)) 상에 존재하는) 데이터 값들로부터 이차 래치를 설정한 후, 상기한 의사 코드에서, "LOAD를 비활성화"는 도 5의 t5에 도시된 바와 같이 LOAD 제어 신호가 로우로 되돌아가서 로딩/패스 트랜지스터(218-1 및 218-2)가 도통을 중단하고 그 결과 상보적 데이터 라인들로부터 다이나믹 래치를 격리시키게 하는 것을 나타낸다. 그러나, 데이터 값은 누산기의 이차 래치에 동적으로 저장된 채로 유지된다.
데이터 값을 이차 래치에 저장한 후, 선택된 로우(예를 들어, ROW X)는 "Row X를 폐쇄"로 나타내어지고 도 5의 t6에 나타어진 바와 같이 디스에이블(예를 들어, 이를테면 특정로우에 대한 선택 신호를 비활성화함으로써 선택 해제, 폐쇄)되며, 이는 액세스 트랜지스터를 턴 오프하여 대응하는 데이터 라인으로부터 선택된 셀의 접속을 해제하는 것에 의해 실현될 수 있다. 일단 선택된 로우가 폐쇄되고 메모리 셀이 데이터 라인으로부터 격리되면, 데이터 라인들은 상기한 의사 코드에서 "프리차지"로 나타내어진 바와 프리차지될 수 있다. 데이터 라인들의 프리차지는, 도 5의 t7에서 EQ 신호가 하이로 가는 것으로 나타내어진 바와 같이, 평형화 연산에 의해 실현될 수 있다. 도 5의 t7에 예시된 감지 증폭기 및 누산기 신호들의 가능한 네 가지 세트의 각각에 나타낸 바와 같이, 평형화 연산은 데이터 라인들(D 및 D_) 상의 전압이 각각 VDD/2로 되돌아가게 한다. 평형화는 예를 들어, (아래에 설명될) 메모리 셀의 감지 연산 또는 논리 연산들 이전에 발생할 수 있다.
(이제 감지 증폭기(206) 및 계산 구성요소(231)의 이차 래치에 저장된) 제1 데이터 값 및 (ROW Y(204-Y)에 접속된 메모리 셀(202-1)에 저장된) 제2 데이터 값에 대한 AND 또는 OR 연산을 수행하는 것과 연관된 후속 연산 단계는 AND 또는 OR가 수행될 지 여부에 따른 특정 단계들을 수행하는 것을 포함할 수 있다. 누산기에 위치하는 데이터 값(예를 들어, ROW X(204-X)에 접속된 메모리 셀(202-2)에 저장된 제1 데이터 값) 및 제2 데이터 값(예를 들어, ROW Y(204-Y)에 접속된 메모리 셀(202-1)에 저장된 데이터 값)을 "AND" 및 "OR"하는 것과 연관된 의사 코드의 예들이 아래에서 요약된다. 데이터 값들을 "AND"하는 것과 연관된 예시적인 의사 코드는 다음을 포함할 수 있다:
EQ를 비활성화;
Row Y를 개방;
감지 앰프들을 점호(이후 Row Y의 데이터는 감지 앰프들에 위치함);
Row Y를 폐쇄;
이 논리 연산의 결과는 다음 연산에서, 감지 앰프에 위치하게 될 것이며, 이는 활성인 임의의 로우를 치환할 것이다;
Row Y가 폐쇄된 때에도, 감지 증폭기는 여전히 Row Y의 데이터 값을 포함한다;
AND를 활성화;
이 결과 감지 증폭기에 기능(예를 들어, Row X AND Row Y)의 값이 기록된다;
누산기가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 포함하는 경우, 감지 증폭기의 데이터는 "0"으로 기록된다;
누산기가 "1"(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 포함하는 경우, 감지 증폭기의 데이터는 변경되지 않고 유지된다(Row Y의 데이터);
이 연산은 누산기 내의 데이터를 변경하지 않고 둔다;
AND를 비활성화;
프리차지;
상기한 의사 코드에서, "EQ를 비활성화"는 감지 증폭기(206)에 대응하는 평형화 신호가 디스에이블되는(예를 들어, 상보적 데이터 라인들(205-1(D) 및 205-2(D_))이 더 이상 VDD/2로 단락되지 않게 되는) 것을 나타내며, 이는 도 5의 t8에 예시된다. 평형화가 디스에이블된 후, 선택된 로우(예를 들어, Row Y)는 상기한 의사 코드에서 "Row Y를 개방"로 나타내어지고 도 5의 t9에 도시된 바와 같이 인에이블된다. ROW Y에 인가되는 전압 신호가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들어, 202-1)의 문턱 전압(Vt)에 도달할 때, 액세스 트랜지스터가 턴 온되고 데이터 라인(예를 들어, D_(205-1))을 데이터 라인들 간 차동 전압 신호를 생성하는 선택된 셀에(예를 들어, 커패시터(203-1)에) 접속시킨다.
Row Y가 인에이블된 후, 상기한 의사 코드에서, "감지 앰프들을 점호"는 감지 증폭기(206)가 인에이블드되어 205-1(D) 및 205-2(D_) 간 차동 신호를 증폭하여, 그 결과 논리 1에 대응하는 전압(예를 들어, VDD) 또는 논리 0에 대응하는 전압(예를 들어, GND)이 데이터 라인(205-1(D)) 상에 존재하게 된다(그리고 다른 논리 상태에 대응하는 전압은 상보적 데이터 라인(205-2(D_)) 상에 존재하게 된다). 도 5의 t10에 도시된 바와 같이, ACT 포지티브 제어 신호(예를 들어, 도 2b에 도시된 265)는 하이로 가고 RnIF 네거티브 제어 신호(예를 들어, 도 2b에 도시된 228)는 로우로 가 감지 앰프들을 점호한다. 메모리 셀(202-1)로부터 감지된 데이터 값은 상술한 바와 같이, 감지 증폭기(206)의 일차 래치에 저장된다. 이차 래치는 여전히 메모리 셀(202-2)로부터의 데이터 값에 대응하는데, 이는 다이나믹 래치가 변경되지 않기 때문이다.
Row Y에 접속된 메모리 셀(202-1)로부터 감지된 제2 데이터 값을 감지 증폭기(206)의 일차 래치에 저장한 후, 상기한 의사 코드에서, "Row Y를 폐쇄"는 AND 논리 연산의 결과를 다시 Row Y에 대응하는 메모리 셀에 저장하는 것이 바람직하지 않은 경우 선택된 로우(예를 들어, Row Y)가 디스에이블될 수 있음을 나타낸다. 그러나, 도 5는 Row Y가 인에이블된 채로 남고 그에 따라 논리 연산의 결과가 다시 Row Y에 대응하는 메모리 셀에 저장될 수 있음을 도시한다. Row Y에 대응하는 메모리 셀을 격리하는 것은 액세스 트랜지스터를 턴 오프하여 데이터 라인(205-1(D))으로부터 선택된 셀(202-1)의 접속을 해제하는 것에 의해 실현될 수 있다. 선택된 Row Y를 (예를 들어, 메모리 셀로부터 격리하거나 또는 메모리 셀로부터 격리하지 않도록) 구성한 후, 상기한 의사 코드에서 "AND를 활성화"는 도 5의 t11에 도시된 바와 같이 AND 제어 신호가 하이로 가, 풀 다운 트랜지스터(207-1)가 통전하게 되는 것을 나타낸다. 이러한 방식으로, AND 제어 신호를 활성화하면 기능(예를 들어, Row X AND Row Y)의 값이 감지 앰프에 기록되어진다.
제1 데이터 값(예를 들어, Row X)이 누산기(231)의 다이나믹 래치에 저장되고 제2 데이터 값(예를 들어, Row Y)이 감지 증폭기(206)에 저장되면, 계산 구성요소(231)의 다이나믹 래치가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 포함하는 경우, (감지 앰프에 이전에 저장된 데이터 값과는 무관하게) 감지 증폭기 데이터는 "0"으로 기록되는데, 이는 노드(S1) 상의 "1"에 대응하는 전압이 트랜지스터(209-1)를 도통하게 하고 그 결과 감지 증폭기(206)를 트랜지스터(209-1), 풀 다운 트랜지스터(207-1) 및 데이터 라인(205-1(D))을 통해 접지에 접속시키기 때문이다. AND 연산의 어느 하나의 데이터 값이 "0"일 때, 그 결과는 "0"이 된다. 여기서, (다이나믹 래치 내) 제2 데이터 값이 "0"일 때, AND 연산의 결과는 제1 데이터 값의 상태와는 무관하게 "0"으로 되며, 그에 따라 감지 회로의 구성은 "0"의 결과가 기록되게 하고 초기에 감지 증폭기(206)에 저장되게 한다. 이러한 연산은 누산기 내의 데이터 값을 (예를 들어, Row X로부터) 변경하지 않고 둔다.
누산기의 이차 래치가 (예를 들어, Row X로부터의) "1"을 포함하는 경우라면, AND 연산의 결과는 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값에 따른다. 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값이 "1"인 경우라면 AND 연산의 결과 또한 "1"이 되어야 하지만, 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값이 "0"인 경우라면 AND 연산의 결과 또한 "0"이 되어야 한다. 감지 회로(250)는 누산기의 다이나믹 래치가 "1"(예를 들어, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 포함하는 경우, 트랜지스터(209-1)는 도통하지 않고, 감지 증폭기는 (상술한 바와 같이) 접지에 접속되지 않으며, 감지 증폭기(206)에 이전에 저장된 데이터 값은 변경되지 않고 (예를 들어, Row Y의 데이터 값이 "1"인 경우라면 AND 연산의 결과가 "1"이 되고 Row Y의 데이터 값이 "0"인 경우라면 AND 연산의 결과가 "0"이 되는 Row Y의 데이터 값이) 유지되도록 구성된다. 이러한 연산은 누산기 내의 데이터 값을 (예를 들어, Row X로부터) 변경하지 않고 둔다.
AND 연산의 결과를 초기에 감지 증폭기(206)에 저장한 후, 상기한 의사 코드에서 "AND를 비활성화"는 AND 제어 신호가 도 5의 t12에 도시된 바와 같이 로우로 가서, 풀 다운 트랜지스터(207-1)가 도통을 중단하여 접지로부터 감지 증폭기(206)(및 데이터 라인(205-1(D))를 격리하게 함을 나타낸다. 이전에 행한 바가 없는 경우라면, Row Y는 (도 5의 t13에 도시된 바와 같이) 폐쇄될 수 있고 감지 증폭기는 (도 5의 t14에 도시된 바와 같이 ACT 포지티브 제어 신호가 로우로 가고 RnIF 네거티브 제어 신호가 하이로 가는 것에 의해) 디스에이블될 수 있다. 데이터 라인들이 격리되면, 상술한 바와 같이(예를 들어, 도 5에 도시된 t14에서 시작되는), 상기한 의사 코드에서 "프리차지"가 평형화 연산에 의해 데이터 라인들을 프리차지하게 한다.
도 5는 대안예에서, 가능한 피연산자들의 조합들(예를 들어, Row X/Row Y의 데이터 값들(00, 10, 01, 및 11))의 각각을 수반하는 AND 논리 연산을 위한 감지 증폭기(예를 들어, 도 2a에 도시된 206)에 접속된 데이터 라인들(예를 들어, 도 2a에 도시된 205-1(D) 및 205-2(D_)) 상의 전압 신호들의 거동 및 계산 구성요소(예를 들어, 도 2a에 도시된 231)의 이차 래치의 노드들(S1 및 S2) 상의 전압 신호들의 거동을 도시한다.
도 5에 예시된 타이밍 선도들 및 상술한 의사 코드가 감지 증폭기에 제2 피연산자(예를 들어, Row Y의 데이터 값)를 로딩하는 것을 시작한 후 AND 논리 연산을 개시하는 것을 나타내고 있지만, 감지 증폭기로 제2 피연산자(예를 들어, Row Y의 데이터 값)를 로딩하는 것을 시작하기 전 AND 논리 연산을 개시함으로써 도 2a에 도시된 회로가 성공적으로 작동될 수도 있다.
도 6은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다. 도 6은 감지 증폭기로 제2 피연산자(예를 들어, Row Y의 데이터 값)를 로딩하는 것을 시작한 후 OR 논리 연산을 개시하는 것과 연관된 타이밍 선도를 예시한다. 도 6은 다양하게 조합된 제1 및 제2 피연산자의 데이터 값에 대한 감지 증폭기 및 누산기 신호들을 예시한다. 특정 타이밍 선도 신호들은 도 2a에 도시된 회로의 AND 논리 연산과 연관된 의사 코드에 대하여 아래에서 논의된다.
후속 연산 단계는 대안적으로 (이제 감지 증폭기(206) 및 계산 구성요소(231)의 이차 래치에 저장된) 제1 데이터 값 및 (Row Y(204-Y)에 접속된 메모리 셀(202-1)에 저장된) 제2 데이터 값에 대한 OR 연산을 수행하는 것과 연관될 수 있다. 도 5에 도시된 시간들(t1 내지 t7)에 대하여 상술한 Row X의 데이터를 감지 증폭기 및 누산기로 로딩하는 연산들은 도 6에 대하여는 반복되지 않는다. 데이터 값들을 "OR"하는 것과 연관된 예시적인 의사 코드는 다음을 포함할 수 있다:
EQ를 비활성화;
Row Y를 개방;
감지 앰프들을 점호(이후 Row Y의 데이터는 감지 앰프들에 위치함);
Row Y를 폐쇄;
Row Y가 폐쇄된 때, 감지 증폭기는 여전히 Row Y의 데이터 값을 포함한다;
OR을 활성화;
이 결과 감지 증폭기에 기능(예를 들어, Row X OR Row Y)의 값이 기록되며, 이는 이전에 감지 증폭기에 저장된 Row Y로부터의 데이터 값을 다음과 같이 치환할 수 있다:
누산기가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 포함하는 경우, 감지 증폭기의 데이터는 변경되지 않고 유지된다(Row Y의 데이터);
누산기가 "1"(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 포함하는 경우, 감지 증폭기의 데이터는 "1"로 기록된다;
이 연산은 누산기 내의 데이터를 변경하지 않고 둔다;
OR을 비활성화;
프리차지;
"EQ를 비활성화"(도 6의 t8에 도시됨), "Row Y를 개방"(도 6의 t9에 도시됨), "감지 앰프들을 점호"(도 6의 t10에 도시됨), 그리고 "Row Y를 폐쇄"(도 6의 t13에 도시되고, 특정 논리 함수 제어 신호가 개시되기 전에 발생할 수 있음)는 AND 연산 의사 코드에 대하여 상술한 것과 동일한 기능을 나타낸다. 일단 선택된 Row Y의 구성이 적절하게 (예를 들어, 논리 연산의 결과가 Row Y에 대응하는 메모리 셀에 저장되는 경우 인에이블되거나 또는 논리 연산의 결과가 Row Y에 대응하는 메모리 셀에 저장되지 않는 경우 메모리 셀을 폐쇄하여 격리하도록) 구성되면, 상기한 의사 코드에서 "OR을 활성화"는 OR 제어 신호가 도 6의 t11에 도시된 바와 같이 하이로 가며, 이는 풀 다운 트랜지스터(207-2)가 도통하게 한다는 것을 나타낸다. 이러한 방식으로, OR 제어 신호를 활성화하면 기능(예를 들어, Row X OR Row Y)의 값이 감지 앰프에 기록되어진다.
제1 데이터 값(예를 들어, Row X)이 계산 구성요소(231)의 이차 래치에 저장되고 제2 데이터 값(예를 들어, Row Y)이 감지 증폭기(206)에 저장되면, 누산기의 다이나믹 래치가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 포함하는 경우라면, OR 연산의 결과는 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값에 따른다. 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값이 "1"인 경우라면 OR 연산의 결과 또한 "1"이 되어야 하지만, 감지 증폭기(206)에 저장된 (예를 들어, Row Y로부터의) 데이터 값이 "0"인 경우라면 OR 연산의 결과 또한 "0"이 되어야 한다. 감지 회로(250)는 누산기의 다이나믹 래치가 "0"을 포함하는 경우, 노드(S2) 상의 "0"에 대응하는 전압을 이용하여, 트랜지스터(209-2)를 오프하고 도통하지 않으므로(그리고 AND 제어 신호가 어써트되지 않기 때문에 풀 다운 트랜지스터(207-1) 또한 오프됨) 감지 증폭기(206)는 (어느 쪽이든) 접지에 접속되지 않고, 감지 증폭기(206)에 이전에 저장된 데이터 값은 변경되지 않고(예를 들어, (예를 들어, Row Y의 데이터 값이 "1"인 경우라면 OR 연산의 결과가 "1"이 되고 Row Y의 데이터 값이 "0"인 경우라면 OR 연산의 결과가 "0"이 되는 Row Y의 데이터 값이) 유지되도록 구성된다.
누산기의 다이나믹 래치가 "1"(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 포함하는 경우, 트랜지스터(209-2)는 (OR 제어 신호가 어써트되기 때문에 풀 다운 트랜지스터(207-2)가 그러한 바와 마찬가지로) 도통하고, 데이터 라인(205-2(D_))에 접속된 감지 증폭기(206)의 입력은 접지에 접속되는데 이는 노드(S2) 상의 "1"에 대응하는 전압이 풀 다운 트랜지스터(207-2)(OR 제어 신호가 어써트되기 때문에 또한 도통하는)와 함께 트랜지스터(209-2)가 도통하게 하기 때문이다. 이러한 방식으로, 이전에 감지 앰프에 저장된 데이터 값과는 무관하게 누산기의 이차 래치가 "1"을 포함하는 때 OR 연산의 결과로서 감지 증폭기(206)에는 초기에 "1"이 저장된다. 이 연산은 누산기 내의 데이터를 변경하지 않고 둔다. 도 6은 대안예에서, 가능한 피연산자들의 조합들(예를 들어, Row X/Row Y의 데이터 값들(00, 10, 01, 및 11))의 각각을 수반하는 OR 논리 연산을 위한 감지 증폭기(예를 들어, 도 2a에 도시된 206)에 접속된 데이터 라인들(예를 들어, 도 2a에 205-1(D) 및 205-2(D_)) 상의 전압 신호들의 거동 및 계산 구성요소(231)의 이차 래치의 노드들(S1 및 S2) 상의 전압 신호들의 거동을 도시한다.
OR 연산의 결과를 초기에 감지 증폭기(206)에 저장한 후, 상기한 의사 코드에서 "OR을 비활성화"는 OR 제어 신호가 도 6의 t12에 도시된 바와 같이 로우로 가서, 풀 다운 트랜지스터(207-2)가 도통을 중단하여 접지로부터 감지 증폭기(206)(및 데이터 라인(D(205-2))를 격리하게 함을 나타낸다. 이전에 행한 바가 없는 경우라면, Row Y는 (도 6의 t13에 도시된 바와 같이) 폐쇄될 수 있고 감지 증폭기는 (도 6의 t14에 도시된 바와 같이 ACT 포지티브 제어 신호가 로우로 가고 RnIF 네거티브 제어 신호가 하이로 가는 것에 의해) 디스에이블될 수 있다. 데이터 라인들이 격리되면, 상기한 의사 코드에서 "프리차지"는 상술하고 도 6의 t14에 도시된 바와 같이, 평형화 조작에 의해 데이터 라인들이 프리차지하게 할 수 있다.
도 2a에 예시된 감지 회로(250)는 다음과 같이 추가적인 논리 연산들의 다용성을 제공할 수 있다. 상술한 AND 및 OR 연산들에서 ANDinv 제어 신호의 연산을 AND 제어 신호의 연산으로 치환 그리고/또는 ORinv 제어 신호의 연산을 OR 제어 신호의 연산으로 치환함으로써, 논리 연산들은 {Row X AND Row Y}에서 {~Row X AND Row Y}(이때 "~Row X"는 Row X의 데이터 값의 반대, 예를 들어, NOT Row X를 나타냄)로 변경될 수 있고 {Row X OR Row Y}에서 {~Row X OR Row Y}로 변경될 수 있다. 예를 들어, 역전된 데이터 값들을 수반하는 AND 연산 동안, AND 제어 신호 대신 ANDinv 제어 신호가 어써트될 수 있고, 역전된 데이터 값들을 수반하는 OR 연산 동안, OR 제어 신호 대신 ORInv 제어 신호가 어써트될 수 있다. ORinv 제어 신호를 활성화하면 트랜지스터(214-1)가 도통하게 되고 ANDinv 제어 신호를 활성화하면 트랜지스터(214-2)가 도통하게 된다. 각각의 경우에서, 적절한 역전된 제어 신호를 어써트하면 감지 증폭기를 플립핑할 수 있고, 초기에 감지 증폭기(206)에 저장된 결과가 역전된 Row X 및 참인 Row Y의 데이터 값들을 사용한 AND 연산의 결과 또는 역전된 Row X 및 참인 Row Y의 데이터 값들을 사용한 OR 연산의 결과가 되게 할 수 있다. 하나의 데이터 값의 참 또는 보상 버전이 예를 들어, 역전될 데이터 값을 먼저 로딩하고 역전되지 않을 데이터 값을 다음에 로딩함으로써, 논리 연산(예를 들어, AND, OR)을 수행하기 위해 누산기에서 사용될 수 있다.
상술한 AND 및 OR 연산에 대한 데이터 값들을 역전하는 것에 대하여 상술한 것과 유사한 접근법에서, 도 2a에 도시된 감지 회로는 비-역전된 데이터 값을 누산기의 다이나믹 래치에 입력하고 그 데이터를 사용하여 감지 증폭기(206) 내의 데이터 값을 역전함으로써 NOT(예를 들어, 역전(invert)) 연산을 수행할 수 있다. 상술한 바와 같이, ORinv 제어 신호를 활성화하면 트랜지스터(214-1)가 도통하게 되고 ANDinv 제어 신호를 활성화하면 트랜지스터(214-2)가 도통하게 된다. ORinv 및/또는 ANDinv 제어 신호들이 아래에서 더 설명될 바와 같이 NOT 기능을 구현하는 데 사용된다:
Row X를 누산기로 복사;
EQ를 비활성화;
Row X를 개방;
감지 앰프들을 점호(이후 Row X의 데이터는 감지 앰프에 위치함);
LOAD를 활성화(감지 증폭기 데이터(Row X)는 누산기의 노드들(S1 및 S2)로 전달되고 거기에 동적으로 위치함);
LOAD를 비활성화;
ANDinv 및 ORinv를 활성화(데이터 라인들 상에 보상 데이터 값이 투입됨);
이 경과 감지 증폭기 내 데이터 값이 역전됨(예를 들어, 감지 증폭기 래치가 플립핑됨);
이 연산은 누산기 내의 데이터를 변경하지 않고 둔다;
ANDinv 및 ORinv를 비활성화;
Row X를 폐쇄;
프리차지;
상술한 의사 코드에 나타낸 "EQ를 비활성화", "Row X를 개방", "감지 앰프들을 점호", "LOAD를 활성화", 그리고 "LOAD를 비활성화"는 AND 연산 및 OR 연산에 대한 의사 코드 이전에 상술한 초기 연산 단계에서의 "Row X를 누산기로 복사"에 대한 의사 코드에서의 동일한 연산들과 동일한 기능을 나타낸다. 그러나, Row X 데이터가 감지 증폭기(206)로 로딩되고 다이나믹 래치로 복사된 후 Row X를 폐쇄하고 프리차지하는 대신에, 누산기의 다이나믹 래치 내 데이터 값의 보수 버전이 데이터 라인 상에 위치될 수 있고 그에 따라 역전 트랜지스터를 (예를 들어, 트랜지스터가 도통하게 하여) 인에이블하고 (예를 들어, ANDinv 및 ORinv하여) 디스에이블함으로써 감지 증폭기(206)로 전달될 수 있다. 이 결과 감지 증폭기(206)가 이전에 감지 증폭기에 저장된 참 데이터 값에서 감지 앰프에 저장된 보수 데이터 값(예를 들어, 역전된 데이터 값)으로 플립핑되게 된다. 예를 들어, 누산기 내의 데이터 값의 참 또는 보수 버전은 ANDinv 및 ORinv를 활성화 및 비활성화함으로써 감지 증폭기로 전달될 수 있다. 이 연산은 누산기 내 데이터를 변경하지 않고 둔다.
도 2a에 도시된 감지 회로(250)가 초기에 AND, OR, 및 NOT 논리 연산들의 결과를 감지 증폭기(206)(예를 들어, 감지 증폭기 노드들 상)에 저장하기 때문에, 이들 논리 연산의 결과들은 임의의 인에이블된 로우로, 논리 연산이 완료된 후 활성화되는 임의의 로우로, 그리고/또는 계산 구성요소(231)의 이차 래치로 용이하고 신속하게 전달될 수 있다. 감지 증폭기(206) 및 AND, OR, 및/또는 NOT 논리 연산들에 대한 시퀀싱은 또한 감지 증폭기(206)가 점호하기 전 AND, OR, ANDinv, 및/또는 ORinv 제어 신호들(및 특정 제어 신호에 접속된 게이트를 갖는 대응하는 트랜지스터들의 연산)을 적절하게 점호함으로써 교환될 수 있다.
이러한 방식으로 논리 연산들을 수행할 때, 감지 증폭기(206)에는 누산기의 다이나믹 래치로부터의 데이터 값이 사전-시딩되어 이용되는 전체 전류를 감소시킬 수 있는데, 이는 누산기의 기능이 감지 증폭기(206)로 복사될 때 감지 앰프들(206)이 풀 레일 전압들(예를 들어, 공급 전압 또는 접지/기준 전압)에 있지 않기 때문이다. 사전-시딩된 감지 증폭기(206)를 이용한 연산 시퀀스는 데이터 라인들 중 하나가 기준 전압이 되도록 강제하거나(상보적 데이터 라인이 VDD/2인 채로 두거나), 또는 상보적 데이터 라인들을 변경하지 않고 둔다. 감지 증폭기(206)는 감지 증폭기(206)가 점호될 때 각각의 데이터 라인들을 풀 레일들(full rails)까지 끌어 올린다. 이러한 연산들의 시퀀스를 사용하면 인에이블된 로우의 데이터가 치환될 것이다.
SHIFT 연산은 종래의 DRAM 격리(ISO) 기법을 사용하여 두 개의 인접한 데이터 라인 상보적 쌍을 멀티플렉싱("먹싱(muxing)")함으로써 실현될 수 있다. 본 발명의 실시예들에 따르면, 시프트 회로(223)를 사용하여 상보적 데이터 라인들의 특정 쌍에 접속된 메모리 셀들에 저장된 데이터 값들을 상보적 데이터 라인들의 상이한 쌍에 대응하는 감지 회로(250)(예를 들어, 감지 증폭기(206))(예를 들어, 이를테면 좌측 또는 우측의 인접한 상보적 데이터 라인들의 쌍에 대응하는 감지 증폭기(206))로 시프트시킬 수 있다. 본 출원에서 사용될 때, 감지 증폭기(206)는 격리 트랜지스터들(221-1 및 221-2)가 도통할 때 감지 증폭기가 접속되는 상보적 데이터 라인들의 쌍에 대응한다. (오른쪽 또는 왼쪽) SHIFT 연산들은 Row X의 데이터 값을 누산기로 사전-복사하지는 않는다. Row X의 오른쪽으로의 시프트 연산들은 다음과 같이 요약될 수 있다:
Norm을 비활성화 그리고 Shift를 활성화;
EQ를 비활성화;
Row X를 개방;
감지 앰프들을 점호(이후 시프트된 Row X의 데이터는 감지 앰프들에 위치함);
Norm을 활성화 그리고 Shift를 비활성화;
Row X를 폐쇄;
프리차지;
상기한 의사 코드에서, "Norm을 비활성화 그리고 Shift를 활성화"는 NORM 제어 신호가 로우로 가서 시프트 회로(223)의 격리 트랜지스터들(221-1 및 221-2)이 도통하지 않게(예를 들어, 대응하는 상보적 데이터 라인들의 쌍으로부터 감지 증폭기를 격리하게) 하는 것을 나타낸다. SHIFT 제어 신호는 하이로 가서 격리 트랜지스터들(221-3 및 221-4)이 도통하게 하며, 그 결과 감지 앰프(206)가 좌측의 인접한 상보적 데이터 라인들의 쌍(예를 들어, 좌측의 인접한 상보적 데이터 라인들의 쌍에 대해 불통인 격리 트랜지스터들(221-1 및 221-2)의 메모리 어레이 측 상)에 접속된다.
시프트 회로(223)가 구성된 후, 상기한 의사 코드에 나타낸 "EQ를 비활성화", "Row X를 활성화", 그리고 "감지 앰프들을 점호"는 AND 연산 및 OR 연산에 대한 의사 코드 이전에 상술한 초기 연산 단계에서의 "Row X를 누산기로 복사"에 대한 의사 코드에서의 동일한 연산들과 동일한 기능을 나타낸다. 이들 연산 이후, 좌측의 인접한 상보적 데이터 라인들의 쌍에 접속된 메모리 셀에 대한 Row X의 데이터 값은 오른쪽으로 시프트되고 감지 증폭기(206)에 저장된다.
상기한 의사 코드에서, "Norm을 활성화 그리고 Shift를 비활성화"는 NORM 제어 신호가 하이로 가서 시프트 회로(223)의 격리 트랜지스터들(221-1 및 221-2)이 도통하게(예를 들어, 감지 증폭기를 대응하는 상보적 데이터 라인들의 쌍에 접속하게) 하는 것, 그리고 SHIFT 제어 신호가 로우로 가서 격리 트랜지스터들(221-3 및 221-4)이 도통하지 않게 하고 좌측의 인접한 상보적 데이터 라인들의 쌍으로부터 (예를 들어, 좌측의 인접한 상보적 데이터 라인들의 쌍에 대해 불통인 격리 트랜지스터들(221-1 및 221-2)의 메모리 어레이 측 상에) 감지 증폭기(206)가 격리되게 하는 것을 나타낸다. Row X가 여전히 활성이기 때문에, 오른쪽으로 시프트된 Row X 데이터 값은 격리 트랜지스터들(221-1 및 221-2)를 통해 대응하는 상보적 데이터 라인들의 쌍의 Row X로 전달된다.
대응하는 상보적 데이터 라인들의 쌍의 오른쪽으로 Row X의 데이터 값들이 시프트된 후, 선택된 로우(예를 들어, ROW X)는 상기한 의사 코드에서 "Row X를 폐쇄"로 나타내어진 바와 같이 디스에이블되며, 이는 액세스 트랜지스터를 턴 오프하여 대응하는 데이터 라인으로부터 선택된 셀의 접속을 해제함으로써 실현될 수 있다. 일단 선택된 로우가 폐쇄되고 메모리 셀이 데이터 라인들로부터 격리되면, 데이터 라인들은 상기한 의사 코드에서 "프리차지"로 나타내어진 바와 같이 프리차지될 수 있다. 데이터 라인들의 프리차지는, 상술한 바와 같이, 평형화 조작에 의해서 실현될 수 있다. Row X의 왼쪽으로의 시프트 연산들은 다음과 같이 요약될 수 있다:
Norm을 활성화 그리고 Shift를 비활성화;
EQ를 비활성화;
Row X를 개방;
감지 앰프들을 점호(이후 Row X의 데이터는 감지 앰프들에 위치함);
Norm을 비활성화 그리고 Shift를 활성화;
감지 증폭기 데이터(왼쪽으로 시프트된 Row X)가 Row X로 전달된다;
Row X를 폐쇄;
프리차지;
상기한 의사 코드에서, "Norm을 활성화 그리고 Shift를 비활성화"는 NORM 제어 신호가 하이로 가서 시프트 회로(223)의 격리 트랜지스터들(221-1 및 221-2)이 도통하게 되는 것, 및 SHIFT 제어 신호가 로우로 가서 격리 트랜지스터들(221-3 및 221-4)이 도통하지 않게 되는 것을 나타낸다. 이러한 구성은 감지 증폭기(206)를 대응하는 상보적 데이터 라인들의 쌍에 접속시키고 우측의 인접한 상보적 데이터 라인들의 쌍으로부터 감지 증폭기를 격리한다.
시프트 회로가 구성된 후, 상기한 의사 코드에 나타낸 "EQ를 비활성화", "Row X를 개방", 그리고 "감지 앰프들은 점호"는 AND 연산 및 OR 연산에 대한 의사 코드 이전에 상술한 초기 연산 단계에서의 "Row X를 누산기로 복사"에 대한 의사 코드에서의 동일한 연산들과 동일한 기능을 나타낸다. 이들 연산 이후, 감지 회로(250)에 대응하는 상보적 데이터 라인들의 쌍에 접속된 메모리 셀에 대한 Row X의 데이터 값은 감지 증폭기(206)에 저장된다.
상기한 의사 코드에서, "Norm을 비활성화 그리고 Shift를 활성화"는 NORM 제어 신호가 로우로 가서 시프트 회로(223)의 격리 트랜지스터들(221-1 및 221-2)이 도통하지 않게(예를 들어, 감지 증폭기를 대응하는 상보적 데이터 라인들의 쌍으로부터 격리되게) 하는 것, 그리고 SHIFT 제어 신호가 하이로 가서 격리 트랜지스터들(221-3 및 221-4)이 좌측의 인접한 상보적 데이터 라인들의 쌍에(예를 들어, 좌측의 인접한 상보적 데이터 라인들의 쌍에 대해 불통인 격리 트랜지스터들(221-1 및 221-2)의 메모리 어레이 측 상에) 감지 증폭기를 접속시켜 도통하게 하는 것을 나타낸다. Row X가 여전히 활성이기 때문에, 왼쪽으로 시프트된 Row X의 데이터 값은 좌측의 인접한 상보적 데이터 라인들의 쌍의 Row X로 전달된다.
좌측의 인접한 상보적 데이터 라인들의 쌍의 왼쪽으로 Row X의 데이터 값들이 시프트된 후, 선택된 로우(예를 들어, ROW X)는 "Row X를 폐쇄"로 나타내어진 바와 같이 디스에이블되며, 이는 액세스 트랜지스터를 턴 오프하여 대응하는 데이터 라인으로부터 선택된 셀의 접속을 해제함으로써 실현될 수 있다. 일단 선택된 로우가 폐쇄되고 메모리 셀이 데이터 라인들로부터 격리되면, 데이터 라인들은 상기한 의사 코드에서 "프리차지"로 나타내어진 바와 같이 프리차지될 수 있다. 데이터 라인들의 프리차지는, 상술한 바와 같이, 평형화 조작에 의해서 실현될 수 있다.
다양한 실시예에 따르면, 예를 들어, 6F^2 또는 4F^2의 메모리 셀 크기들의 메모리 셀마다 하나의 트랜지스터(예컨데, ITIC) 구성인 DRAM과 같은 프로세서 인 메모리(PIM)의 메모리 어레이 코어에서의 범용 계산이 가능할 수 있다. 본 출원에서 설명한 장치들 및 방법들의 가능한 장점은 단일 명령 속도의 면에서 실현될 수 있다기 보다, 반드시 메모리 어레이(예를 들어, DRAM) 밖으로 데이터를 전달하거나 컬럼 복호화를 점호하지는 않으면서 병렬적으로 데이터 뱅크 전체를 계산하는 것에 의해 달성될 수 있는 누적 속도로 실현될 수 있다. 예를 들어, 데이터 전달 시간이 감소 는 제거될 수 있다. 다시 말해, 본 발명의 장치는 데이터 라인(예를 들어, 16K 메모리 셀들의 컬럼)에 접속된 메모리 셀들 내 데이터 값들을 사용하여 동시에 AND 또는 OR를 수행할 수 있다.
종래의 접근법에서, 논리 연산 처리를 위해서 (예를 들어, 32 또는 64 비트 레지스터들을 사용하여) 외부로 데이터를 이동시키는 감지 회로들은 본 발명의 장치에 비해 병렬적으로 보다 적은 연산이 수행될 수 있다. 이러한 방식으로, 데이터가 상호 전달되어야 하도록 메모리와 별개인 중앙 처리 장치(CPU)를 수반한 종래의 구성들에 비해서 현저하게 더 높은 처리량이 효과적으로 제공된다. 본 발명에 따른 장치들 및/또는 방법들은 또한 CPU가 메모리와 별개인 구성들보다 더 적은 에너지/면적을 사용할 수 있다. 뿐만 아니라, 본 발명의 장치 및/또는 방법들은 인-메모리-어 내(in-memory-array) 논리 연산들이 특정 데이터 값의 전달들을 제거함으로써 에너지를 절약할 수 있기 때문에 보다 적은 에너지/면적의 장점들을 향상시킬 수 있다.
도 7은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다. 도 2a의 감지 회로(250)의 기능은 논리 연산들을 수행하는 것 및 초기에 결과를 계산 구성요소(231)(예를 들어, 누산기의 이차 래치)에 저장하는 것에 대하여 아래에서 설명된다. 도 7에 도시된 타이밍 선도는 도 2a에 예시된 감지 회로를 사용하여 논리 연산(예를 들어, R-입력 논리 연산)의 제1 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 예시한다. 도 7에 대하여 설명될 제1 연산 단계는 예를 들어, AND, NAND, OR, 또는 NOR 연산의 제1 연산 단계일 수 있다. 도 7에 예시된 연산 단계를 수행하는 것은 전압 레일들 사이에(예를 들어, 공급 및 접지 사이에) 풀 스윙을 제공하는 것을 수반할 수 있는 종래의 프로세싱 접근법들보다 현저히 적은 에너지(예를 들어, 약 절반)를 소모하는 것을 수반할 수 있다.
도 7에 예시된 예에서, 상보적 논리 값들(예를 들어, “1” 및 “0”)에 대응하는 전압 레일들은 공급 전압(VDD) 및 기준 전압(예를 들어, 접지(Gnd))이다. 논리 연산을 수행하기 전, 상보적 데이터 라인들(D 및 D_)이 상술된 바와 같이, 평형화 전압(VDD/2)에서 같이 단락되도록 평형화가 발생할 수 있다.
아래에 설명될 논리 연산의 제1 연산 단계는 논리 연산의 제1 피연산자를 누산기로 로딩하는 것을 수반한다. 도 7에 도시된 시간 기준들(예를 들어, t1 등)은 반드시 다른 타이밍 선도들에서의 유사한 시간 기준들과 동일한 절대 또는 상대 시간을 나타낼 필요는 없다.
시간 t1에서, 평형화 신호(726)는 비활성화되고, 그 다음 선택된 로우(예를 들어, 데이터 값이 감지되어 제1 입력으로서 사용될 메모리 셀에 대응하는 로우)가 인에이블된다. 신호(704-0)는 선택된 로우(예를 들어, 도 2a에 도시된 Row Y(204-Y))에 인가되는 전압 신호를 나타낸다. 로우 신호(704-0)가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들어, 도 2a에 도시된 202-1)의 문턱 전압(Vt)에 도달한 때, 액세스 트랜지스터는 턴 온되고 데이터 라인(D)을 선택된 메모리 셀에(예를 들어, 셀이 1T1C DRAM 셀인 경우 커패시터(도 2a에 도시된 203-1)에) 접속시키며, 이는 시간들(t2 내지 t3)에서 데이터 라인들(D 및 D_) 간 차동 전압 신호(예를 들어, 각각, 데이터 라인들 상에 신호들(705-1 및 705-2)에 의해 나타내어진 바와 같은)를 생성한다. 선택된 셀의 전압은 신호(703)에 의해 나타내어진다. 에너지 보존으로 인해, (예를 들어, 셀을 데이터 라인(D)에 접속시키는 것에 의해) 데이터 라인들(D 및 D_) 간 차동 신호를 생성하더라도 에너지를 소모하지는 않는데, 이는 로우 신호(704-0)의 인에이블/디스에이블과 연관된 에너지가 로우에 접속된 복수의 메모리 셀에 걸쳐 상각될 수 있기 때문이다.
시간(t3)에서, 감지 증폭기(예를 들어, 도 2a에 도시된 206)가 활성화되며(예를 들어, 포지티브 제어 신호(765)(예를 들어, 도 2b에 도시된 ACT(265)에 대응하는)가 하이로 가고 네거티브 제어 신호(728)(예를 들어, 도 2b에 도시된 RnIF(228)에 대응하는)가 로우로 간다), 이는 데이터 라인들(D 및 D_) 간 차동 신호를 증폭시키며, 그 결과 논리 "1"에 대응하는 전압(예를 들어, VDD) 또는 논리 "0"에 대응하는 전압(예를 들어, 접지)이 데이터 라인(D) 상에 있게 되어(그리고 다른 전압이 상보적 감지 라인(D_) 상에 있게 되어), 감지된 데이터 값이 감지 증폭기(206)의 일차 래치에 저장되게 된다. 일차 에너지 소모는 데이터 라인(D)(205-1)을 평형화 전압(VDD/2)에서 레일 전압(VDD)으로 충전하면서 발생한다. 도 7은 예로, 논리 "1"에 대응하는 데이터 라인 전압들(705-1 및 705-2)이 데이터 라인(D) 상에 존재하는 것으로 도시한다.
몇몇 실시예에 따르면, 감지 증폭기(206)의 일차 래치는 각각의 패스 트랜지스터들(도 2b에 도시되지 않으나 래치(264)가 도 2a에 도시된 로드/패스 트랜지스터들(218-1 및 218-2)을 통해 데이터 라인들(D 및 D_)에 접속되는 방식과 유사한 구성)을 통해 보상적 데이터 라인들(D 및 D_)에 접속될 수 있다. Passd 제어 신호(711)는 하나의 패스 트랜지스터를 제어한다. Passdb 제어 신호는 다른 패스 트랜지스터를 제어하고, 여기서 Passdb 제어 신호는 Passd 제어 신호와 동일한 거동할 수 있다.
시간(t4)에서, 패스 트랜지스터들(존재하는 경우)이 (예를 들어, 하이로 가는 패스 트랜지스터들의 각각의 게이트들에 접속된 제어 라인들에 인가되는 각각의 Passd 및 Passdb 제어 신호들(711)을 통해) 인에이블될 수 있다. 시간(t5)에서, 누산기 포지티브 제어 신호(712-1)(예를 들어, Accumb) 및 누산기 포지티브 제어 신호(712-2)(예를 들어, Accum))는 도 2a에 도시된 각각의 제어 라인들(212-1 및 212-2)을 통해 활성화된다. 아래에서 설명될 바와 같이, 누산기 제어 신호들(ACCUMB(712-1) 및 ACCUM(712-2))은 후속 연산 단계들 동안 활성화된 채로 유지될 수 있다. 이와 같이, 본 예에서, 제어 신호들(ACCUMB(712-1) 및 ACCUM(712-2))을 활성화하면 도 2a에 도시된 계산 구성요소(231-6)의 이차 래치(예를 들어, 누산기)가 인에이블된다. 감지 증폭기(206)에 저장된 감지된 데이터 값은 다이나믹 래치 및 래치(264)를 포함하는 이차 래치로 전달(예를 들어, 복사)된다.
시간(t6)에서, Passd 제어 신호(711)(및 Passdb 제어 신호)는 로우로 가고 그에 의해 패스 트랜지스터들(존재하는 경우)이 턴 오프된다. 그러나, 누산기 제어 신호들(ACCUMB(712-1) 및 ACCUM(712-2))이 활성화된 채로 유지되기 때문에, 누산된 결과는 이차 래치들(예를 들어, 누산기)에 저장(예를 들어, 래치)된다. 시간(t7)에서, 로우 신호(704-0)가 비활성화되고, 어레이 감지 앰프들은 시간(t8)에서 디스에이블(예를 들어, 감지 증폭기 제어 신호들(728 및 765)이 비활성화)된다.
시간(t9)에서, 데이터 라인들(D 및 D_)이 데이터 라인 전압 신호들(705-1 및 705-2)에 의해 예시된 바와 같이 그것들의 각각의 레일 전압에서 평형화 전압(VDD/2)으로 이동시켜 평형화된다(예를 들어, 평형화 신호(726)가 활성화된다). 평형화는 에너지의 보존 법칙에 기인하여 에너지를 거의 소모하지 않는다. 도 2b와 연관하여 아래에 설명될 바와 같이, 평형화는 본 예에서, VDD/2인 평형화 전압으로 상보적 데이터 라인들(D 및 D_)이 함께 단락되는 것을 수반할 수 있다. 평형화는 예를 들어, 메모리 셀의 감지 연산 이전에 발생할 수 있다.
도 8 및 도 9은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도들을 예시한다. 도 8 및 도 9에 도시된 타이밍 선도들은 논리 연산(예를 들어, R-입력 논리 연산)의 다수의 중간 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 예시한다. 예를 들어, 도 8에 도시된 타이밍 선도는 R-입력 NAND 연산 또는 R-입력 AND 연산의 다수의 중간 연산 단계에 대응하고, 도 9에 도시된 타이밍 선도는 R-입력 NOR 연산 또는 R-입력 OR 연산의 다수의 중간 연산 단계에 대응한다. 예를 들어, AND 또는 NAND 연산을 수행하는 것은 도 7에 대하여 설명된 것과 같은 초기 연산 단계에 후속하여 다수 회 도 8에 도시된 연산 단계를 수행하는 것을 포함할 수 있다. 유사하게, OR 또는 NOR 연산을 수행하는 것은 도 7에 대하여 설명된 것과 같은 초기 연산 단계에 후속하여 다수 회 도 9에 대하여 도시되고 설명된 연산 단계를 수행하는 것을 포함할 수 있다.
도 8 및 도 9에 예시된 타이밍 선도들에 도시된 바와 같이, 시간(t1)에서, 평형화가 디스에이블되고(예를 들어, 평형화 신호(826/926)가 비활성화되고), 그 다음 선택된 로우(예를 들어, 데이터 값이 감지되어 입력 이를테면 제2 입력, 제3 입력으로서 사용될 메모리 셀에 대응하는 로우)가 인에이블된다. 신호(804-1/904-1)는 선택된 로우(예를 들어, 도 2a에 도시된 Row Y(204-Y))에 인가되는 전압 신호를 나타낸다. 로우 신호(804-1)가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들어, 도 2a에 도시된 202-1)의 문턱 전압(Vt)에 도달한 때, 액세스 트랜지스터는 턴 온되고 감지 라인(D)을 선택된 메모리 셀에(예를 들어, 셀이 1T1C DRAM 셀인 경우 커패시터(203-1)에) 접속시키며, 이는 시간(t2 내지 t3)에 데이터 라인들(D 및 D_) 간 차동 전압 신호(예를 들어, 각각, 신호들(805-1/905-1 및 805-2/905-2)로 표시된 바와 같은)를 생성한다. 선택된 셀의 전압은 신호(803/903)로 표시된다. 에너지 보존으로 인해, (예를 들어, 셀을 데이터 라인(D)에 접속시키는 것에 의해) D 및 D_ 간 차동 신호를 생성하더라도 에너지를 소모하지는 않는데, 이는 로우 신호(804-1/904-1)의 활성화/비활성화와 연관된 에너지가 로우에 접속된 복수의 메모리 셀에 걸쳐 상각될 수 있기 때문이다.
시간(t3)에서, 감지 증폭기(예를 들어, 도 2a에 도시된 206)가 인에이블되며(포지티브 제어 신호(865/965)(예를 들어, 도 2b에 도시된 ACT(233)에 대응하는)가 하이로 가고, 네거티브 제어 신호(828/928)(예를 들어, 도 2b에 도시된 RnIF(228))가 로우로 간다), D 및 D_ 간 차동 신호를 증폭시키며, 그 결과 논리 1에 대응하는 전압(예를 들어, VDD) 또는 논리 0에 대응하는 전압(예를 들어, 접지)이 데이터 라인(D) 상에 있게 되어(그리고 다른 전압이 데이터 라인(D_) 상에 있게 되어), 감지된 데이터 값이 감지 앰프(206)의 일차 래치에 저장되게 된다. 일차 에너지 소모는 데이터 라인(D(205-1))을 평형화 전압(VDD/2)에서 레일 전압(VDD)으로 충전하면서 발생한다.
도 8 및 도 9에 도시된 타이밍 선도들에 도시된 바와 같이, 시간(t4)에서(예를 들어, 선택된 셀이 감지된 후), 제어 신호들(도 8에 도시된 811-1(Passd) 및 도 9에 도시된 911-2(Passdb)) 중 단지 하나가 특정 논리 연산에 따라, 활성화된다(예를 들어, 패스 트랜지스터들(존재하는 경우) 중 단지 하나가 인에이블된다). 예를 들어, 도 8에 예시된 타이밍 선도가 NAND 또는 AND 연산의 중간 단계에 대응하기 때문에, 제어 신호(811-1)(Passd)는 시간(t4)에서 활성화되어 패스 일차 래치를 데이터 라인(D)에 접속시키는 트랜지스터를 턴 온 하고, Passdb 제어 신호는 비활성화된 채로 유지되어 일차 래치를 턴 오프된 데이터 라인(D_)에 접속시키는 패스 트랜지스터를 그대로 둔다. 반대로, 도 9에 예시된 타이밍 선도가 NOR 또는 OR 연산의 중간 단계에 대응하기 때문에, 제어 신호(911-2)(Passdb)는 시간(t4)에서 활성화되어 패스 일차 래치를 데이터 라인(D_)에 접속시키는 트랜지스터를 턴 온 하고, Passd 제어 신호는 비활성화된 채로 유지되어 일차 래치를 턴 오프된 데이터 라인(D)에 접속시키는 패스 트랜지스터를 그대로 둔다. 상기한 내용으로부터 상기하여 보면, 도 7에 대하여 설명된 초기 연산 단계 동안 누산기 제어 신호들(712-1(Accumb) 및 712-2(Accum))이 활성화되었고, 그것들은 중간 연산 단계(들) 동안 활성화된채로 유지된다.
누산기가 이전에 인에이블되었기 때문에, 단지 Passd(도 8에 도시된 811-1)가 활성화되면 데이터 라인(D)에 대응하는 도 8에 도시된 전압 신호(805-1)에 대응하는 데이터 값이 누산된다. 유사하게, 단지 Passdb(도 9에 도시된 바와 같은 911-2)만 활성화되면 데이터 라인(D_)에 대응하는 전압 신호(905-2)에 대응하는 데이터 값이 누산된다. 예를 들어, 단지 Passd(811-1)만 활성화되는 도 8에 예시된 타이밍 선도에 도시된 예시적인 AND/NAND 연산에서, 제2 선택된 메모리 셀에 저장된 데이터 값이 논리 "0"인 경우라면, 이차 래치와 연관된 누산된 값은 이차 래치가 논리 "0"을 저장하도록 로우로 어써트된다.제2 메모리 셀에 저장된 데이터 값이 논리 "0"이 아닌 경우라면, 이차 래치는 그것의 저장된 제1 선택된 메모리 셀 데이터 값(예를 들어, 논리 "1" 또는 논리 "0")을 유지한다. 이와 같이, 이러한 AND 및 NAND 연산 예에서, 보조 래치는 제로들(0들) 누산기로서의 역할을 하고 있다.
유사하게, 단지 Passdb(911-2)만 활성화되는 도 9에 예시된 타이밍 선도에 도시된 예시적인 OR/NOR 연산에서, 제2 선택된 메모리 셀에 저장된 데이터 값이 논리 "1"인 경우라면, 이차 래치와 연관된 누산된 값은 이차 래치가 논리 "1"을 저장하도록 하이로 어써트된다.제2 메모리 셀에 저장된 데이터 값이 논리 "1"이 아닌 경우라면, 이차 래치는 그것의 저장된 제1 선택된 메모리 셀 데이터 값(예를 들어, 논리 "1" 또는 논리 "0")을 유지한다. 이와 같이, 이러한 OR/NOR 연산 예에서, D_ 상의 전압 신호(905-2)가 누산기의 참 데이터 값을 설정하고 있기 때문에, 보조 래치는 일들(1들) 누산기로서의 역할을 효과적으로 하고 있다.
이를테면 도 8 또는 도 9에 도시된 것과 같은 중간 연산 단계의 마지막에서, Passd 신호(811-1)(예를 들어, AND/NAND를 위한) 또는 Passdb 신호(911-2)(예를 들어, OR/NOR를 위한)가 비활성화되고(예를 들어, 시간(t5)에서), 선택된 로우가 디스에이블되고(예를 들어, 시간(t6)에서), 감지 증폭기가 디스에이블되며(예를 들어, 시간(t7)에서), 평형화가 발생한다(예를 들어, 시간(t8)에서). 도 8 또는 도 9에 예시된 것과 같은 중간 연산 단계는 다수의 추가 로우로부터의 결과들을 누산하기 위해 반복될 수 있다. 예로서, 도 8 및/또는 도 9에 예시된 타이밍 선도의 시퀀스는 제3 메모리 셀을 위해 후속(예를 들어, 제2) 시간, 제4 메모리 셀을 위해 후속(예를 들어, 제3) 시간 등에서 수행될 수 있다. 예를 들어, 10-입력 NOR 연산을 위해, 도 9에 도시된 중간 단계는 10-입력 논리 연산의 9개의 입력을 제공하기 위해 9회 발생할 수 있으며, 제10 입력은 초기 연산 단계(예를 들어, 도 7에 대하여 설명된 바와 같은) 동안 결정된다.
도 10은 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다. 도 10에 예시된 타이밍 선도는 논리 연산(예를 들어, R-입력 논리 연산)의 마지막 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 도시한다. 예를 들어, 도 10에 예시된 타이밍 선도는 R-입력 AND 연산 또는 R-입력 OR 연산의 마지막 연산 단계에 대응한다.
예를 들어, R-입력의 마지막 연산 단계를 수행하는 것은 도 8 및/또는 도 9과 연관하여 설명된 중간 연산 단계(들)의 다수 회 반복에 후속하여 도 10에 도시된 연산 단계를 수행하는 것을 포함할 수 있다. 아래에 제시된 표 2는 본 출원에서 설명된 다수의 실시예에 따라 다수의 R-입력 논리 연산을 수행하는 것과 연관된 연산 단계들의 시퀀스에 대응하는 도면들을 나타낸다.
연산 도 7 도 8 도 9 도 10
AND 제1 단계 R-1회 반복
마지막 단계
NAND 제1 단계 R-1회 반복
OR 제1 단계 R-1회 반복
마지막 단계
NOR 제1 단계 R-1회 반복
NAND 연산은 예를 들어, AND 연산에 대한 R-1회 반복의 결과를 감지 증폭기에 저장함으로써, 그 다음 (아래에 설명될) 결과를 저장하기 위한 마지막 연산 단계를 수행하기 전 감지 증폭기를 역전함으로써 구현될 수 있다. NOR 연산은 예를 들어, OR 연산에 대한 R-1회 반복의 결과를 감지 증폭기에 저장함으로써, 그 다음 (아래에 설명될) 결과를 저장하기 위한 마지막 연산 단계를 수행하기 전 감지 증폭기를 역전함으로써 구현될 수 있다.
도 10의 타이밍 선도에 예시된 마지막 연산 단계들이 어레이(예를 들어, 도 2a에 도시된 어레이(230))의 로우에 R-입력 논리 연산의 결과를 저장하는 것과 연관하여 설명된다. 그러나, 상술한 바와 같이, 다수의 실시예에서, 결과는 다시 어레이에가 아니라 적합한 위치에(예를 들어, I/O 라인들을 통해, 제어기 및/또는 호스트 프로세서와 연관된 외부 레지스터, 상이한 메모리 디바이스의 메모리 어레이 등에) 저장될 수 있다.
도 10에 예시된 타이밍 선도에 도시된 바와 같이, 시간(t1)에서, 데이터 라인들(D 및 D_)이 플로팅 상태가 되도록 평형화가 디세이블된다(예를 들어, 평형화 신호(1026)가 비활성화된다). 시간(t2)에서, AND 또는 OR 연산을 위해 Passd 제어 신호(1011)(및 Passdb 신호)가 활성화된다.
Passd 제어 신호(1011)(및 Passdb 신호)가 활성화되면(예를 들어, AND 또는 OR 연산과 연관하여) 도 2a에 도시된 계산 구성요소(231-6)의 이차 래치에 저장된 누산된 출력이 감지 증폭기(206)의 일차 래치로 전달된다. 예를 들어, AND 연산을 위해, 이전 연산 단계들(예를 들어, 도 7에 예시된 제1 연산 단계 및 도 8에 예시된 중간 연산 단계의 한 번 이상의 반복)에서 감지된 메모리 셀들 중 임의의 메모리 셀이 논리 "0"을 저장했다면(예를 들어, AND 연산의 R-입력들 중 임의의 입력이 논리 "0"이었다면), 데이터 라인(D_)은 논리 1(예를 들어, VDD)에 대응하는 전압을 캐리할 것이고 데이터 라인(D)은 논리 "0"(예를 들어, 접지)에 대응하는 전압을 캐리할 것이다. 이러한 AND 예에 대해, 이전 연산 단계들에서 감지된 모든 메모리 셀이 논리 "1"을 저장했다면(예를 들어, AND 연산의 R-입력들 중 모든 입력이 논리 "1"이었다면), 데이터 라인(D_)은 논리 "0"에 대응하는 전압을 캐리할 것이고 데이터 라인(D)은 논리 "1"에 대응하는 전압을 캐리할 것이다. 그 다음 시간(t3)에서, 감지 앰프(206)가 인에이블되며(예를 들어, 포지티브 제어 신호(1065)(예를 들어, 도 2b에 도시된 ACT(265))는 하이로 가고, 네거티브 제어 신호(1028)(예를 들어, 도 2b에 도시된 RnIF(228))는 로우로 간다), 이는 D 및 D_ 간 차동 신호를 증폭시키며, 그에 따라 데이터 라인(D)은 이제 이전의 연산 단계들 동안 감지된 메모리 셀들로부터 결정되는 바와 같이 각각의 입력 데이터 값들의 AND된 결과를 캐리한다. 이와 같이, 데이터 라인(D)은 입력 데이터 값들 중 임의의 입력 데이터 값이 논리 "0"인 경우 접지될 것이고, 데이터 라인(D)은 모든 입력 데이터 값이 논리 "1"인 경우에 VDD에 있게 될 것이다.
OR 연산에 대해서, 메모리 셀들 중 임의의 메모리 셀이 이전의 연산 단계들(예를 들어, 도 7의 제1 연산 단계 및 도 9에 도시된 중간 연산 단계의 하나 이상의 반복)에서 논리 "1"이 저장되었음을 감지한 경우(예를 들어, OR 연산의 R-입력 중 임의의 입력이 논리 "1"인 경우)라면, 데이터 라인(D_)은 논리 "0"에 대응하는 전압(예를 들어, 접지)을 캐리할 것이고, 데이터 라인(D)은 논리 "1"에 대응하는 전압(예를 들어, VDD)을 캐리할 것이다. 이러한 OR 예에 대해, 이전 연산 단계들에서 감지된 모든 메모리 셀이 논리 "0"을 저장했다면(예를 들어, OR 연산의 모든 R-입력이 논리 "0"이었다면), 데이터 라인(D)은 논리 0에 대응하는 전압을 캐리할 것이고 데이터 라인(D_)은 논리 "1"에 대응하는 전압을 캐리할 것이다. 그 다음 시간 t3에서, 감지 증폭기(206)의 일차 래치가 인에이블되고, 데이터 라인(D)은 이제 이전 연산 단계들 동안 감지된 메모리 셀들로부터 결정된 바와 같이 각각의 입력 데이터 값들의 OR된 결과를 캐리한다. 이와 같이, 입력 데이터 값들 중 임의의 입력 데이터 값이 논리 "1"인 경우 데이터 라인(D)은 VDD에 있을 것이고, 모든 입력 데이터 값이 논리 "0"인 경우 데이터 라인(D)은 접지될 것이다.
그 다음 R-입력 AND 또는 OR 논리 연산들의 결과는 다시 도 2a에 도시된 어레이(230)의 메모리 셀에 저장될 수 있다. 도 10에 도시된 예들에서, R-입력 논리 연산의 결과는 인에이블된 마지막 로우(예를 들어, 마지막 논리 연산 피연산자의 로우)에 접속된 메모리 셀에 저장된다. 메모리 셀에 논리 연산의 결과를 저장하는 것은 간단히 특정 로우를 인에이블으로써 관련 로우 액세스 트랜지스터를 인에이블하는 것을 수반한다. 메모리 셀의 커패시터는 데이터 라인(D) 상의 데이터 값(예를 들어, 논리 "1" 또는 논리 "0")에 대응하는 전압으로 구동될 것이며, 이는 본질적으로 선택된 메모리 셀에 이전에 저장되었던 모든 데이터 값을 치환한다. 선택된 메모리 셀이 논리 연산을 위한 입력으로서 사용되는 데이터 값을 저장한 동일한 메모리 셀일 수 있음이 주의된다. 예를 들어, 논리 연산의 결과는 다시 논리 연산의 피연산자를 저장한 메모리 셀에 저장될 수 있다.
도 10에 예시된 타이밍 선도는 시간(t7)에서, 포지티브 제어 신호(1065) 및 네거티브 제어 신호(1028)가 비활성화되어(예를 들어, 신호(1065)는 로우로 가고 신호(1028)는 하이로 간다) 감지 증폭기(도 2a에 도시된 206)를 디스에이블시키는 것을 도시한다. 시간(t4)에서, 시간(t2)에서 활성화되었던 Passd 제어 신호(1011)(및 Passdb 신호)가 비활성화된다. 실시예들은 이 예에 제한되지는 않는다. 예를 들어, 다수의 실시예에서, 감지 증폭기(도 2a에 도시된 206)는 시간(t4) 후(예를 들어, Passd 제어 신호(1011)(및 Passdb 신호)가 비활성화된 후) 인에이블될 수 있다.
도 10에 도시된 바와 같이, 시간(t5)에서, 선택된 로우가 인에이블되며(예를 들어, 로우 활성화 신호(1004)가 하이로 가는 것에 의해), 이는 선택된 셀의 커패시터를 누산기에 저장된 논리값에 대응하는 전압까지 구동시킨다. 시간(t6)에서, 선택된 로우는 디스에이블된다. 시간(t7)에서, 감지 증폭기(도 2a에 도시된 206)는 디스에이블(예를 들어, 포지티브 제어 신호(1028) 및 네거티브 제어 신호(1065)가 비활성화)되고, 시간(t8)에서 평형화가 발생한다(예를 들어, 신호(1026)는 인에이블되고 상보적 데이터 라인들(1005-1(D) 및 1005-2(D_)) 상의 전압들이 평형화 전압에 도달된다).
R-입력의 마지막 논리 연산을 수행하는 것의 예가 AND 및 OR 논리 연산들을 위한 도 10에 대하여 위에서 논의되었지만, 실시예들은 이들 논리 연산에 제한되지는 않는다. 예를 들어, NAND 및 NOR 연산들은 또한 도 2a에 예시된 감지 회로를 작동하기 위한 제어 신호들을 사용하여 다시 어레이(230)의 메모리 셀에 저장되는 R-입력의 마지막 연산 단계를 수반할 수 있다.
도 11은 본 발명의 다수의 실시예에 따른 선택가능한 논리 연산 선택 로직을 갖는 감지 회로를 예시한 개략도이다. 도 11은 상보적 감지 라인들(1105-1 및 1105-2)의 쌍에 접속된 감지 증폭기(1106), 및 패스 게이트들(1193-1 및 1193-2)을 거쳐 감지 증폭기(1106)에 접속된 계산 구성요소(1131)를 도시한다. 패스 게이트들(1193-1 및 1193-2)의 게이트들은 논리 연산 선택 로직(1113-5)으로부터 출력될 수 있는, 논리 연산 선택 논리 신호(PASS)에 의해 제어될 수 있다. 도 11은 계산 구성요소(1131)를 "A"로 라벨링하여 그리고 감지 증폭기(1106)를 "B"로 라벨링하여 도시하여 계산 구성요소(1131)에 저장된 데이터 값이 "A" 데이터 값이고 또한 감지 증폭기(1106)에 저장된 데이터 값이 "B" 데이터 값임을 나타내며, 이들을 도 12에 대하여 예시된 논리 테이블들에 나타내었다.
도 11에 예시된 감지 회로(1150)는 논리 연산 선택 로직(1113-5)을 포함할 수 있다. 본 예에서, 로직(1113-5)은 논리 연산 선택 로직 신호(PASS*)에 의해 제어되는 스왑 게이트들(swap gates)(1142)를 포함한다. 논리 연산 선택 로직(1113-5)은 또한 다음 네 개의 논리 선택 트랜지스터를 포함한다: 스왑 트랜지스터들(1142)의 게이트들 및 TF 신호 제어 라인 사이에 접속된 논리 선택 트랜지스터(1162), 패스 게이트들(1193-1 및 1193-2)의 게이트들 및 TT 신호 제어 라인 사이에 접속된 논리 선택 트랜지스터(1152), 패스 게이트들(1193-1 및 1193-2)의 게이트들 및 FT 신호 제어 라인 사이에 접속된 논리 선택 트랜지스터(1154), 및 스왑 트랜지스터들(1142)의 게이트들 및 FF 신호 제어 라인 사이에 접속된 논리 선택 트랜지스터(1164). 논리 선택 트랜지스터들(1162 및 1152)의 게이트들은 (ISO 신호 제어 라인에 접속된 게이트를 갖는) 격리 트랜지스터(1150-1)를 통해 참인 감지 라인(예를 들어, 1105-1)에 접속되고, 논리 선택 트랜지스터들(1164 및 1154)의 게이트들은 (또한 ISO 신호 제어 라인에 접속된 게이트를 갖는) 격리 트랜지스터(1150-2)를 통해 상보적 감지 라인(예를 들어, 1105-2)에 접속된다.
논리 선택 트랜지스터들(1152 및 1154)은 도 5에 도시된 바와 같이, 각각, 트랜지스터(507-1)(AND 신호 제어 라인에 접속됨) 및 트랜지스터(507-2)(OR 신호 제어 라인에 접속됨)와 유사하게 배치된다. 논리 선택 트랜지스터들(1152 및 1154)의 연산은 ISO 신호가 어써트될 때의 각각의 상보적 감지 라인들 상의 데이터 값들 및 TT 및 FT 선택 신호들의 상태에 기초하여 유사하다. 논리 선택 트랜지스터들(1162 및 1164)은 또한 스왑 트랜지스터들(1142)를 제어(예를 들어, 턴 온에 의해 인에이블 또는 턴 오프에 의해 디스에이블) 하는 방식과 유사한 방식으로 작동한다. 예를 들어, 스왑 트랜지스터들(1142)를 인에이블(예를 들어, 턴 온)하기 위해서는, 참인 감지 라인 상의 데이터 값이 "1"인 TF 제어 신호가 활성화(예를 들어, 하이)되거나, 또는 상보적 감지 라인 상의 데이터 값이 "1"인 FF 제어 신호가 활성화(예를 들어, 하이)되면 된다. 각각의 제어 신호 또는 대응하는 감지 라인(예를 들어, 특정 로직 선택 트랜지스터의 게이트가 접속된 감지 라인) 상의 데이터 값 중 어느 하나도 하이가 아닌 경우라면, 스왑 트랜지스터들(1142)은 특정 로직 선택 트랜지스터에 의해 인에이블되지 않을 것이다.
PASS* 제어 신호는 PASS 제어 신호에 반드시 상보적일 필요는 없다. 예를 들어, PASS 및 PASS* 제어 신호들 양자가 동시에 활성화되거나 비활성화되는 것이 가능하다. 그러나, PASS 및 PASS* 제어 신호들 양자가 동시에 활성화되면 상보적 감지 라인들의 쌍(DIGIT(n)/DIGIT(n)_)이 함께 단락되며, 이는 회피해야 할 파괴적인 구성일 수 있다. 도 11에 예시된 감지 회로에 대한 논리 연산 결과들은 도 12에 예시된 논리 테이블에 요약된다.
도 12는 본 발명의 다수의 실시예에 따른 도 11에 도시된 감지 회로에 의해 구현가능한 선택가능한 논리 연산 결과들을 예시한 논리 테이블이다. 네 개의 논리 선택 제어 신호(예를 들어, TF, TT, FT, 및 FF)는 상보적 감지 라인들 상에 존재하는 특정 데이터 값과 함께, 복수의 논리 연산 중 하나를 선택하여 감지 증폭기(1106) 및 계산 구성요소(1131)에 저장된 시작 데이터 값들을 수반하는 것을 구현하기 위해 사용될 수 있다. 네 개의 제어 신호(예를 들어, TF, TT, FT, 및 FF)는 상보적 감지 라인들 상에 존재하는 특정 데이터 값과 함께, 패스 게이트들(1193-1 및 1193-2) 및 스왑 트랜지스터들(1142)을 제어하며, 이는 결과적으로 점호 이전/이후 계산 구성요소(1131) 및/또는 감지 증폭기(1106) 내의 데이터 값에 영향을 미친다. 스왑 트랜지스터들(1142)을 선택가능하게 제어할 수 있는 능력은 다른 것들 중에서도, 역전 데이터 값들을 수반하는 논리 연산들(예를 들어, 역전 피연산자들 및/또는 역전 결과)을 구현하는 것을 용이하게 한다.
도 12에 예시된 논리 테이블은 1244의 컬럼(A)에 제시된 계산 구성요소(1131)에 저장된 시작 데이터 값 및 1245의 컬럼(B)에 제시된 감지 증폭기(1106)에 저장된 시작 데이터 값을 나타낸다. 도 12의 논리 테이블에서 다른 3개의 최상단 컬럼의 헤딩들(NOT OPEN(1256), OPEN TRUE(1270), 및 OPEN INVERT(1271))은 패스 게이트들(1193-1 및 1193-2), 및 스왑 트랜지스터들(1142)의 상태를 나타내며, 이들은 ISO 제어 신호가 어써트될 때 상보적 감지 라인들(1105-1 및 1105-2)의 쌍 상에 존재하는 특정 데이터 값과 함께, 네 개의 논리 선택 제어 신호(예를 들어, TF, TT, FT, 및 FF)의 상태에 따라 각각 OPEN(개방) 또는 CLOSED(폐쇄)로 제어될 수 있다. "Not Open" 컬럼은 불통(예를 들어, 오프) 상태에 놓여있는 패스 게이트들(1193-1 및 1193-2) 및 스왑 트랜지스터들(1142) 양자에 대응하고, "Open True"는 도통(예를 들어, 온) 상태에 놓여있는 패스 게이트들(1193-1 및 1193-2)에 대응하며, "Open Invert"는 도통 상태에 놓여있는 스왑 트랜지스터들(1142)에 대응한다. 양자가 도통 상태에 놓여있는 패스 게이트들(1193-1 및 1193-2) 및 스왑 트랜지스터들(1142)에 대응하는 구성은 도 12의 논리 테이블에는 반영되어 있지 않은데, 이는 이 결과 감지 라인들이 함께 단락되기 때문이다.
패스 게이트들(1193-1 및 1193-2) 및 스왑 트랜지스터들(1142)의 선택적 제어를 통해, 도 12의 논리 테이블의 상단부의 두 개의 로우 중 제1 세트의 세 개의 컬럼의 각각이 제1 세트 아래의 두 개의 로우의 제2 세트의 세 개의 컬럼의 각각과 조합되어 3 x 3 = 9개의 상이한 조합을 제공할 수 있으며, 이는 1275에 제시된 다양한 연결 경로로 나타내어진 바와 같이, 아홉 개의 상이한 논리 연산에 대응한다. 감지 회로(1150)에 의해서 구현될 수 있는 아홉 개의 상이한 선택 가능한 논리 연산은 도 12에 예시된 논리 테이블에 요약된다.
도 12에 예시된 논리 테이블의 하단부의 컬럼들은 논리 선택 제어 신호들의 상태를 포함할 수 있는 헤딩(1280)을 나타낸다. 예를 들면, 제1 논리 선택 제어 신호(예를 들어, FF)의 상태는 로우(1276)에 제공되고, 제2 논리 선택 제어 신호(예를 들어, FT)의 상태는 로우(1277)에 제공되고, 제3 논리 선택 제어 신호(예를 들어, TF)의 상태는 로우(1278)에 제공되며, 제4 논리 선택 제어 신호(예를 들어, TT)의 상태는 로우(1279)에 제공된다. 해당 결과에 대응하는 특정 논리 연산이 로우(1247)에 요약된다.
이와 같이, 도 11에 나타낸 감지 회로가 도 12에 나타낸 다양한 논리 연산을 수행하기 위해 사용될 수 있다. 예를 들어, 감지 회로(1150)는 본 발명의 다수의 실시예에 따라 메모리 내에서 스왑 동작들을 수행하는 것과 연관하여 다양한 논리 연산(예를 들어, AND 및 OR 논리 연산들)을 수행하도록 작동될 수 있다.
본 발명은 메모리 내에서 스왑 동작들을 수행하는 것과 관련 있는 장치들 및 방법들을 제공한다. 예시적인 장치는 제1 감지 라인에 접속되고 제1 요소를 저장하도록 구성된 메모리 셀들의 제1 그룹을 포함할 수 있다. 예시적인 장치는 제2 감지 라인에 접속되고 제2 요소를 저장하도록 구성된 메모리 셀들의 제2 그룹을 포함할 수 있다. 예시적인 장치는 또한 데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 다수의 동작을 수행하도록 감지 회로를 제어함으로써 제1 요소가 메모리 셀들의 제2 그룹에 저장되게 그리고 제2 요소가 메모리 셀들의 제1 그룹에 저장되게 하도록 구성된 제어기를 포함할 수 있다.
구체적인 실시예들이 본 출원에서 예시되고 설명되었지만, 해당 기술분야에서의 통상의 기술자들은 동일한 결과들을 달성하기 위해 계산되는 배열이 도시된 구체적인 실시예들을 대체할 수 있다는 것을 인식할 것이다. 본 발명은 본 발명의 하나 이상의 실시예의 각색예들 또는 변형예들을 커버하도록 의도된다. 상기한 설명은 한정적 방식이 아니라, 예시적 방식으로 이루어졌다는 것이 이해되어야 한다. 상기한 실시예들, 및 본 출원에 구체적으로 설명되지 않은 다른 실시예들의 조합이 상기한 설명의 리뷰 시 해당 기술분야의 통상의 기술자들에게 분명할 것이다. 본 발명의 하나 이상의 실시예의 범위는 상기한 구조들 및 방법들이 사용되는 다른 적용예들을 포함할 수 있다. 따라서, 본 발명의 하나 이상의 실시예들의 범위는 첨부된 청구항들을 참조하여, 청구항들에 권리가 부여되는 것과 같은 균등물들의 전체 범위와 함께 결정되어야 한다.
앞서 언급한 상세한 설명에서, 일부 피처는 본 발명을 간소화하기 위해 단일 실시예로 함께 그룹화된다. 본 발명의 이러한 방법은 본 발명의 개시된 실시예들이 각각의 청구항에 명백하게 나열되는 것보다 많은 피처를 사용해야 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 다음 청구항들이 반영하는 바와 같이, 본 발명의 청구 대상은 하나의 개시된 실시예의 모든 피처보다 적은 피처에 있다. 따라서, 다음의 청구항들은 이에 의해 상세한 설명으로 통합되며, 각각의 청구항은 개별 실시예로서 독립적이다.

Claims (31)

  1. 장치로서:
    제1 감지 라인에 접속되고 제1 요소를 저장하도록 구성된 메모리 셀들의 제1 그룹;
    제2 감지 라인에 접속되고 제2 요소를 저장하도록 구성된 메모리 셀들의 제2 그룹; 및
    데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 다수의 동작을 수행하도록 감지 회로를 제어함으로써 상기 제1 요소가 상기 메모리 셀들의 제2 그룹에 저장되게 그리고 상기 제2 요소가 상기 메모리 셀들의 제1 그룹에 저장되게 하도록 구성된 제어기를 포함하는, 장치.
  2. 청구항 1에 있어서, 상기 다수의 동작은 다수의 AND 연산, OR 연산, INVERT(인버트) 연산, 및 SHIFT(시프트) 연산을 포함하는, 장치.
  3. 청구항 2에 있어서, 상기 감지 회로는 상기 제1 감지 라인에 접속되고 상기 메모리 셀들의 제1 그룹과 피치를 두고(on pitch) 형성되는 제1 계산 구성요소 및 상기 제2 감지 라인에 접속되고 상기 메모리 셀들의 제2 그룹과 피치를 두고 형성되는 제2 계산 구성요소를 포함하는, 장치.
  4. 청구항 3에 있어서, 상기 감지 회로는 상기 제1 계산 구성요소에 접속된 제1 감지 증폭기 및 상기 제2 계산 구성요소에 접속된 제2 감지 증폭기를 포함하는, 장치.
  5. 청구항 4에 있어서, 상기 제1 감지 증폭기 및 상기 제2 감지 증폭기의 각각은 일차 래치를 포함하고, 상기 제1 계산 구성요소 및 상기 제2 계산 구성요소의 각각은 이차 래치를 포함하는, 장치.
  6. 방법으로서,
    스왑 동작을 수행하는 단계를 포함하고, 상기 스왑 동작을 수행하는 단계는:
    메모리 셀들의 어레이의 제1 감지 라인에 그리고 다수의 액세스 라인에 접속된 메모리 셀들의 제1 그룹에 저장된 제1 요소를 제2 감지 라인에 그리고 상기 다수의 액세스 라인에 접속된 메모리 셀들의 제2 그룹에 저장된 제2 요소와 스왑핑하는 단계로서, 그에 따라 상기 스왑핑 후, 상기 제1 요소가 상기 메모리 셀들의 제2 그룹에 저장되고, 상기 제2 요소가 상기 메모리 셀들의 제1 그룹에 저장되게 되는, 상기 스왑핑하는 단계를 포함하되;
    상기 스왑핑은 상기 제1 요소 및 상기 제2 요소에 대응하는 데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 수행되는, 방법.
  7. 청구항 6에 있어서, 상기 스왑핑 이전, 상기 제1 요소는 상기 메모리 셀들의 제1 그룹에 제1 비트-벡터로서 저장되며, 상기 메모리 셀들의 제1 그룹 내 각각의 메모리 셀은 상기 제1 비트-벡터의 각각의 비트를 저장하는, 방법.
  8. 청구항 7에 있어서, 스왑핑 이전, 상기 제2 요소는 상기 메모리 셀들의 제2 그룹에 제2 비트-벡터로서 저장되며, 상기 메모리 셀들의 제2 그룹 내 각각의 메모리 셀은 상기 제2 비트-벡터의 각각의 비트를 저장하는, 방법.
  9. 청구항 8에 있어서, 상기 스왑핑 후, 상기 제1 비트-벡터가 상기 메모리 셀들의 제2 그룹에 저장되고, 상기 제2 비트-벡터가 상기 메모리 셀들의 제1 그룹에 저장되는, 방법.
  10. 청구항 6에 있어서, 상기 스왑핑 이전:
    상기 제1 요소는 다수의 비트를 포함하는 제1 비트-벡터로서, 상기 제1 그룹의 각각의 다수의 메모리 셀에 저장되며; 그리고
    상기 제2 요소는 상기 제1 비트-벡터와 동일한 다수의 비트를 포함하는 제2 비트-벡터로서, 상기 제2 그룹의 각각의 다수의 메모리 셀에 저장되되;
    상기 제2 비트-벡터의 비트들과 동일한 비트 위치를 갖는 상기 제1 비트-벡터의 비트들이 상기 다수의 액세스 라인의 동일한 액세스 라인에 접속된 메모리 셀들에 저장되며; 그리고
    상기 제1 요소를 상기 제2 요소와 스왑핑하는 단계는 동일한 비트 위치를 갖고 동일한 액세스 라인에 접속된 메모리 셀들에 저장된 상기 제1 비트-벡터 및 상기 제2 비트-벡터의 비트 쌍들을 스왑핑하는 단계를 포함하고, 그에 따라 상기 스왑핑 후, 상기 제1 요소는 상기 제1 비트-벡터로서, 상기 제2 그룹의 상기 각각의 다수의 메모리 셀에 저장되고, 상기 제2 요소가 상기 제2 비트-벡터로서, 상기 제1 그룹의 상기 각각의 다수의 메모리 셀에 저장되는, 방법.
  11. 청구항 6에 있어서, 상기 제1 요소는 제1 값이고 상기 제2 요소는 제2 값이되, 상기 스왑 동작을 수행하는 단계는 그 결과 상기 제1 값을 상기 메모리 셀들의 제2 그룹에 저장하게 되고 상기 제2 값을 상기 메모리 셀들의 제1 그룹에 저장하게 되는, 방법.
  12. 장치로서,
    복수의 제1 감지 라인에 접속되고 복수의 제1 요소를 저장하도록 구성된 메모리 셀들의 복수의 제1 그룹;
    복수의 제2 감지 라인에 접속되고 복수의 제2 요소를 저장하도록 구성된 메모리 셀들의 복수의 제2 그룹; 및
    데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도 상기 복수의 제1 요소를 메모리 셀들의 상기 복수의 제2 그룹에 저장하고 상기 복수의 제2 요소를 메모리 셀들의 상기 복수의 제1 그룹에 저장함으로써 스왑 동작을 수행하도록 감지 회로를 제어하도록 구성된 제어기를 포함하는, 장치.
  13. 청구항 12에 있어서, 상기 복수의 제1 감지 라인의 수량은 상기 복수의 제2 감지 라인의 수량과 동일한 수량인, 장치.
  14. 청구항 13에 있어서, 상기 복수의 제2 감지 라인의 각각은 메모리 어레이의 상기 복수의 제1 감지 라인의 상이한 제1 감지 라인에 인접한, 장치.
  15. 청구항 14에 있어서, 상기 복수의 제2 감지 라인의 어떠한 두 개의 제2 감지 라인도 서로에 인접하지 않는, 장치.
  16. 청구항 15에 있어서, 상기 복수의 제1 감지 라인의 어떠한 두 개의 제1 감지 라인도 서로에 인접하지 않는, 장치.
  17. 장치로서,
    복수의 제1 요소를 저장하도록 구성된 메모리 셀들의 복수의 제1 그룹으로서, 메모리 셀들의 상기 복수의 제1 그룹으로부터의 각각의 그룹은 복수의 제1 감지 라인으로부터의 상이한 감지 라인에 그리고 다수의 액세스 라인에 접속되는, 메모리 셀들의 상기 복수의 제1 그룹;
    복수의 제2 요소를 저장하도록 구성된 메모리 셀들의 복수의 제2 그룹으로서, 메모리 셀들의 상기 복수의 제2 그룹으로부터의 각각의 그룹은 복수의 제2 감지 라인으로부터의 상이한 감지 라인에 그리고 상기 다수의 액세스 라인에 접속되는, 메모리 셀들의 상기 복수의 제2 그룹; 및
    데이터를 입력/출력(I/O) 라인을 통해 전달하지 않고도, 상기 복수의 제1 요소를 상기 복수의 제2 요소와 스왑핑하도록 감지 회로를 제어하도록 구성된 제어기로서, 그에 따라 상기 복수의 제1 요소가 메모리 셀들의 상기 복수의 제2 그룹에 저장되게 되고 상기 복수의 제2 요소가 메모리 셀들의 상기 복수의 제1 그룹에 저장되게 되는, 상기 제어기를 포함하는, 장치.
  18. 청구항 17에 있어서, 상기 제어기는 동작들의 다수 회 반복을 수행하도록 상기 감지 회로를 제어하도록 더 구성되되, 반복들의 횟수는 상기 제1 복수의 요소 및 상기 제2 복수의 요소의 요소 폭과 동일한, 장치.
  19. 청구항 18에 있어서, 상기 제1 복수의 요소 및 상기 제2 복수의 요소는 각각의 비트-벡터들로서 저장되고, 상기 요소 폭은 상기 각각의 비트-벡터들에 대응하는 비트들의 수량인, 장치.
  20. 청구항 18에 있어서, 상기 제어기가 상기 복수의 제1 요소의 각각으로부터의 특정 비트를 메모리 셀들의 상기 복수의 제2 그룹의 메모리 셀들에 저장하고 상기 복수의 제2 요소의 각각으로부터의 특정 비트를 메모리 셀들의 상기 복수의 제1 그룹의 메모리 셀들에 저장함으로써 상기 동작들의 다수 회 반복의 각각을 수행하도록 상기 감지 회로를 제어하도록 구성되는 것을 더 포함하는, 장치.
  21. 스왑 동작을 수행하기 위한 방법으로서,
    병렬적으로 그리고 감지 라인 어드레스 액세스를 수행하지 않고도, 다음에 대해 메모리 내 스왑 동작을 수행하는 단계를 포함하되:
    메모리 셀들의 복수의 제1 그룹에 저장된 복수(M개)의 제1 요소로서, 상기 복수의 제1 그룹으로부터의 메모리 셀들의 각각의 그룹은 복수의 제1 감지 라인으로부터의 상이한 감지 라인에 그리고 다수(X개)의 액세스 라인에 접속되는, 상기 M개의 제1 요소; 및
    메모리 셀들의 복수의 제2 그룹에 저장된 복수(M개)의 제2 요소로서, 상기 복수의 제2 그룹으로부터의 메모리 셀들의 각각의 그룹은 복수의 제2 감지 라인으로부터의 상이한 감지 라인에 그리고 상기 X개의 액세스 라인에 접속되는, 상기 M개의 제2 요소;
    상기 스왑 동작을 수행하는 단계는 그 결과 상기 M개의 제1 요소를 메모리 셀들의 상기 복수의 제2 그룹에 저장하게 되고 상기 M개의 제2 요소를 메모리 셀들의 상기 복수의 제1 그룹에 저장하게 되는, 방법.
  22. 청구항 21에 있어서, 상기 M개의 제1 요소 및 상기 M개의 제2 요소의 각각은 다수의(N) 비트로 이루어지는, 방법.
  23. 청구항 22에 있어서, 상기 M개의 제1 요소 및 상기 M개의 제2 요소의 각각에서의 상기 N 비트의 각각은 상기 N 비트의 비트 위치들에 대응하는 다수(X개)의 인덱스 중 하나와 연관되고, 동일한 연관된 인덱스를 갖는 대응하는 요소들로부터의 비트들은 상기 X개의 액세스 라인으로부터의 동일한 액세스 라인에 접속된 메모리 셀들에 저장되는, 방법.
  24. 청구항 23에 있어서, 상기 X개의 액세스 라인의 각각은 상기 X개의 인덱스의 상이한 인덱스와 연관되는, 방법.
  25. 청구항 24에 있어서, 다음에 의해 상기 스왑 동작이 상기 복수의 제1 요소 및 상기 복수의 제2 요소에 대해 수행됨을 식별하는 단계를 더 포함하되:
    제1 액세스 라인에 그리고 복수의 제3 감지 라인에 접속된 메모리 셀들의 제1 그룹에 마스크 비트-벡터를 저장하는 단계로서;
    상기 복수의 제3 감지 라인은 상기 복수의 제1 감지 라인 및 상기 복수의 제2 감지 라인을 포함하는, 상기 마스트 비트-벡터를 저장하는 단계; 및
    제2 액세스 라인에 그리고 상기 복수의 제3 감지 라인에 접속된 메모리 셀들의 제2 그룹에 시프트된 마스크 비트-벡터를 저장하는 단계;
    상기 마스크 비트-벡터 및 상기 시프트된 마스크 비트-벡터는 상기 복수의 제1 요소 및 상기 복수의 제2 요소로부터의 어느 요소들이 상기 스왑 동작에 사용되는지를 식별하는 것인, 방법.
  26. 청구항 25에 있어서, 동작들의 다수 회 반복을 수행하는 단계를 더 포함하되, 동작들의 각각의 반복은 상기 X개의 인덱스 중 하나와 연관되는, 방법.
  27. 청구항 26에 있어서, 상기 동작들의 다수 회 반복의 동작들의 각각의 반복은:
    상기 복수의 제1 요소 및 상기 복수의 제2 요소의 각각으로부터의 상기 X개의 인덱스로부터의 특정 인덱스와 연관된 복수의 비트를 포함하는 제1 임시 비트-벡터를 제3 액세스 라인에 그리고 상기 복수의 제3 감지 라인에 접속된 메모리 셀들의 제3 그룹에 저장하는 단계; 및
    상기 제1 임시 비트-벡터를 복수의 계산 구성요소에 저장하는 단계를 더 포함하는, 방법.
  28. 청구항 27에 있어서, 상기 동작들의 다수 회 반복의 동작들의 각각의 반복은:
    상기 복수의 계산 구성요소에 저장된 비트-벡터를 우측 시프트하는 단계;
    상기 비트-벡터 및 상기 시프트된 마스크 벡터에 대해 제1 AND 연산을 수행하는 단계; 및
    상기 제1 AND 연산의 결과를 메모리 셀들의 제4 그룹에 제2 임시 비트-벡터로서 저장하는 단계를 더 포함하되;
    메모리 셀들의 상기 제4 그룹은 제4 액세스 라인에 그리고 상기 복수의 제3 감지 라인에 접속되는, 방법.
  29. 청구항 28에 있어서, 상기 동작들의 다수 회 반복의 동작들의 각각의 반복은:
    상기 시프트된 마스크 비트-벡터를 상기 복수의 계산 구성요소에 저장하는 단계;
    상기 복수의 계산 구성요소에 저장된 상기 비트-벡터에 대해 제1 INVERT 연산을 수행하는 단계;
    상기 복수의 제1 요소 및 상기 복수의 제2 요소의 각각으로부터의 상기 X개의 인덱스로부터의 상기 특정 인덱스와 연관된 상기 복수의 비트에 대해 그리고 상기 복수의 계산 구성요소에 저장된 상기 비트-벡터에 대해 제2 AND 연산을 수행하는 단계;
    상기 제2 AND 연산의 결과에 대해 그리고 상기 제2 임시 비트-벡터에 대해 제1 OR 연산을 수행하는 단계;
    상기 제1 OR 연산의 결과를 상기 특정 인덱스와 연관된 액세스 라인에 그리고 상기 X개의 감지 라인에 접속된 메모리 셀들에 저장하는 단계를 더 포함하는, 방법.
  30. 청구항 29에 있어서, 상기 동작들의 다수 회 반복의 동작들의 각각의 반복은:
    상기 제1 임시 비트-벡터를 상기 복수의 계산 구성요소에 저장하는 단계;
    상기 복수의 계산 구성요소에 저장된 상기 비트-벡터에 대해 그리고 상기 시프트된 마스크 벡터에 대해 제3 AND 연산을 수행하는 단계;
    상기 제3 AND 연산의 상기 결과를 상기 계산 구성요소에 저장하는 단계;
    상기 계산 구성요소 내 상기 비트-벡터를 좌측 시프트하는 단계;
    상기 계산 구성요소들 내 상기 비트-벡터를 메모리 셀들의 상기 제4 그룹에 저장하는 단계를 더 포함하는, 방법.
  31. 청구항 30에 있어서, 상기 동작들의 다수 회 반복의 동작들의 각각의 반복은:
    상기 마스크 비트-벡터를 상기 복수의 계산 구성요소에 저장하는 단계;
    상기 복수의 계산 구성요소에 저장된 상기 비트-벡터에 대해 제2 INVERT 연산을 수행하는 단계;
    상기 복수의 계산 구성요소에 저장된 상기 비트-벡터 및 상기 복수의 제1 요소 및 상기 복수의 제2 요소의 각각으로부터의 상기 X개의 인덱스로부터의 상기 특정 인덱스와 연관된 상기 복수의 비트에 대해 제4 AND 연산을 수행하는 단계;
    상기 제4 AND 연산의 결과 및 상기 제2 임시 비트-벡터에 대해 제2 OR 연산을 수행하는 단계;
    상기 제2 OR 연산의 결과를 상기 특정 인덱스와 연관된 상기 액세스 라인에 그리고 상기 X개의 감지 라인에 접속된 메모리 셀들에 저장하는 단계를 더 포함하는, 방법.
KR1020177008785A 2014-09-03 2015-09-03 메모리 내 스왑 동작들 KR101889238B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462045193P 2014-09-03 2014-09-03
US62/045,193 2014-09-03
US14/836,555 2015-08-26
US14/836,555 US9740607B2 (en) 2014-09-03 2015-08-26 Swap operations in memory
PCT/US2015/048251 WO2016036913A1 (en) 2014-09-03 2015-09-03 Swap operations in memory

Publications (2)

Publication Number Publication Date
KR20170049553A true KR20170049553A (ko) 2017-05-10
KR101889238B1 KR101889238B1 (ko) 2018-08-16

Family

ID=55402525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008785A KR101889238B1 (ko) 2014-09-03 2015-09-03 메모리 내 스왑 동작들

Country Status (6)

Country Link
US (2) US9740607B2 (ko)
EP (1) EP3195315B1 (ko)
KR (1) KR101889238B1 (ko)
CN (1) CN106688040B (ko)
TW (1) TWI620058B (ko)
WO (1) WO2016036913A1 (ko)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
CN107430874B (zh) 2015-03-12 2021-02-02 美光科技公司 用于数据移动的设备及方法
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
KR20180021510A (ko) 2016-08-22 2018-03-05 삼성전자주식회사 메모리 장치 및 중앙 처리 장치
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
KR102034152B1 (ko) * 2017-10-25 2019-10-18 한양대학교 산학협력단 반도체 메모리 장치 및 반도체 메모리 장치의 로우 버퍼
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
KR20200118311A (ko) * 2019-04-05 2020-10-15 삼성전자주식회사 데이터를 스왑하기 위한 메모리 장치 및 메모리 장치의 동작 방법
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11436071B2 (en) 2019-08-28 2022-09-06 Micron Technology, Inc. Error control for content-addressable memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638317A (en) * 1990-08-22 1997-06-10 Texas Instruments Incorporated Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit
US20040205289A1 (en) * 2003-04-11 2004-10-14 Sujaya Srinivasan Reclaiming blocks in a block-alterable memory
US20140244703A1 (en) * 2013-02-26 2014-08-28 Nvidia Corporation System, method, and computer program product for implementing large integer operations on a graphics processing unit

Family Cites Families (270)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
JPS6032911B2 (ja) 1979-07-26 1985-07-31 株式会社東芝 半導体記憶装置
US4435792A (en) 1982-06-30 1984-03-06 Sun Microsystems, Inc. Raster memory manipulation apparatus
US4727474A (en) 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
EP0214718A3 (en) 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digital computer
US5201039A (en) 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US4843264A (en) 1987-11-25 1989-06-27 Visic, Inc. Dynamic sense amplifier for CMOS static RAM
US5276643A (en) 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
JPH0713858B2 (ja) 1988-08-30 1995-02-15 三菱電機株式会社 半導体記憶装置
US5023838A (en) 1988-12-02 1991-06-11 Ncr Corporation Random access memory device with integral logic capability
US4958378A (en) 1989-04-26 1990-09-18 Sun Microsystems, Inc. Method and apparatus for detecting changes in raster data
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
DE69132495T2 (de) 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
US5034636A (en) 1990-06-04 1991-07-23 Motorola, Inc. Sense amplifier with an integral logic function
US5210850A (en) 1990-06-15 1993-05-11 Compaq Computer Corporation Memory address space determination using programmable limit registers with single-ended comparators
JPH06103599B2 (ja) 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US5325519A (en) 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
FR2685973B1 (fr) 1992-01-03 1994-02-25 France Telecom Point memoire pour memoire associative.
KR950005095Y1 (ko) 1992-03-18 1995-06-22 문정환 양방향성 그로벌 비트 라인을 갖는 dram
JPH06215160A (ja) 1992-08-25 1994-08-05 Texas Instr Inc <Ti> データ処理方法および装置
KR950004854B1 (ko) 1992-10-08 1995-05-15 삼성전자 주식회사 반도체 메모리 장치
US5440482A (en) 1993-03-25 1995-08-08 Taligent, Inc. Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order
US5485373A (en) 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
US5369622A (en) 1993-04-20 1994-11-29 Micron Semiconductor, Inc. Memory with isolated digit lines
US5754478A (en) 1993-04-20 1998-05-19 Micron Technology, Inc. Fast, low power, write scheme for memory circuits using pulsed off isolation device
JP2663838B2 (ja) 1993-07-27 1997-10-15 日本電気株式会社 半導体集積回路装置
JP3252306B2 (ja) 1993-08-10 2002-02-04 株式会社日立製作所 半導体不揮発性記憶装置
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US20010052062A1 (en) * 1994-03-01 2001-12-13 G. Jack Lipovski Parallel computer within dynamic random access memory
JP3251421B2 (ja) 1994-04-11 2002-01-28 株式会社日立製作所 半導体集積回路
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
JPH0831168A (ja) 1994-07-13 1996-02-02 Hitachi Ltd 半導体記憶装置
US5481500A (en) 1994-07-22 1996-01-02 International Business Machines Corporation Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories
US5615404A (en) 1994-10-31 1997-03-25 Intel Corporation System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals
US5638128A (en) 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
US5724366A (en) 1995-05-16 1998-03-03 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
KR0146530B1 (ko) 1995-05-25 1998-09-15 김광호 단속제어회로를 구비한 반도체 메모리 장치와 제어방법
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
JP2812262B2 (ja) 1995-08-31 1998-10-22 日本電気株式会社 連想記憶装置
JP2817836B2 (ja) 1995-11-30 1998-10-30 日本電気株式会社 半導体メモリ装置
JP3356612B2 (ja) 1996-02-29 2002-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速な輪郭スムージング方法及び装置
US6092186A (en) 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5915084A (en) 1996-09-30 1999-06-22 Advanced Micro Devices, Inc. Scannable sense amplifier circuit
US5991209A (en) 1997-04-11 1999-11-23 Raytheon Company Split sense amplifier and staging buffer for wide memory architecture
JP3592887B2 (ja) 1997-04-30 2004-11-24 株式会社東芝 不揮発性半導体記憶装置
US6510098B1 (en) 1997-05-28 2003-01-21 Cirrus Logic, Inc. Method and apparatus for transferring data in a dual port memory
JPH1115773A (ja) 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US5935263A (en) 1997-07-01 1999-08-10 Micron Technology, Inc. Method and apparatus for memory array compressed data testing
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6025221A (en) 1997-08-22 2000-02-15 Micron Technology, Inc. Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks
US5991785A (en) 1997-11-13 1999-11-23 Lucent Technologies Inc. Determining an extremum value and its index in an array using a dual-accumulation processor
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6163862A (en) 1997-12-01 2000-12-19 International Business Machines Corporation On-chip test circuit for evaluating an on-chip signal using an external test signal
JP3488612B2 (ja) 1997-12-11 2004-01-19 株式会社東芝 センス増幅回路
US5986942A (en) 1998-01-20 1999-11-16 Nec Corporation Semiconductor memory device
JPH11260057A (ja) 1998-03-13 1999-09-24 Nec Corp 半導体記憶装置
JPH11265995A (ja) 1998-03-17 1999-09-28 Mitsubishi Electric Corp 半導体記憶装置
JPH11306751A (ja) 1998-04-22 1999-11-05 Toshiba Corp 半導体記憶装置
US6005799A (en) 1998-08-06 1999-12-21 Silicon Aquarius Methods and circuits for single-memory dynamic cell multivalue data storage
US6141286A (en) 1998-08-21 2000-10-31 Micron Technology, Inc. Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines
US7409694B2 (en) 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
JP2000173269A (ja) 1998-12-08 2000-06-23 Mitsubishi Electric Corp 半導体記憶装置
KR100381968B1 (ko) 1998-12-30 2004-03-24 주식회사 하이닉스반도체 고속동작용디램
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US6134164A (en) 1999-04-22 2000-10-17 International Business Machines Corp. Sensing circuit for a memory cell array
US6741104B2 (en) 1999-05-26 2004-05-25 Micron Technology, Inc. DRAM sense amplifier for low voltages
US6157578A (en) 1999-07-15 2000-12-05 Stmicroelectronics, Inc. Method and apparatus for accessing a memory device
US6208544B1 (en) 1999-09-09 2001-03-27 Harris Corporation Content addressable memory cell providing simultaneous read and compare capability
US6578058B1 (en) 1999-10-06 2003-06-10 Agilent Technologies, Inc. System and method for comparing values from target systems
US7124221B1 (en) 1999-10-19 2006-10-17 Rambus Inc. Low latency multi-level communication interface
US6418498B1 (en) 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP4627103B2 (ja) 2000-01-18 2011-02-09 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法
WO2001057875A1 (fr) 2000-02-04 2001-08-09 Hitachi, Ltd. Dispositif semi-conducteur
AU2001239907A1 (en) 2000-02-29 2001-09-12 Stephen J. Guerreri Method and apparatus for building a memory image
US7028170B2 (en) 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
JP3822412B2 (ja) 2000-03-28 2006-09-20 株式会社東芝 半導体記憶装置
US6965648B1 (en) 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
CN1307647C (zh) 2000-07-07 2007-03-28 睦塞德技术公司 动态随机存取存储器、存储器器件及其执行读命令的方法
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
WO2002017262A2 (en) 2000-08-21 2002-02-28 United States Postal Services Delivery point validation system
US6301164B1 (en) 2000-08-25 2001-10-09 Micron Technology, Inc. Antifuse method to repair columns in a prefetched output memory architecture
US6704828B1 (en) 2000-08-31 2004-03-09 Micron Technology, Inc. System and method for implementing data pre-fetch having reduced data lines and/or higher data rates
US6948056B1 (en) 2000-09-28 2005-09-20 Intel Corporation Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages
US6304477B1 (en) 2001-01-31 2001-10-16 Motorola, Inc. Content addressable magnetic random access memory
US6563754B1 (en) 2001-02-08 2003-05-13 Integrated Device Technology, Inc. DRAM circuit with separate refresh memory
US6650158B2 (en) 2001-02-21 2003-11-18 Ramtron International Corporation Ferroelectric non-volatile logic elements
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
ITRM20010531A1 (it) 2001-08-31 2003-02-28 Micron Technology Inc Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash.
US7260672B2 (en) 2001-09-07 2007-08-21 Intel Corporation Using data stored in a destructive-read memory
US7062689B2 (en) 2001-12-20 2006-06-13 Arm Limited Method and apparatus for memory self testing
US20040073773A1 (en) 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US6707729B2 (en) 2002-02-15 2004-03-16 Micron Technology, Inc. Physically alternating sense amplifier activation
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
JP2003331598A (ja) 2002-05-13 2003-11-21 Mitsubishi Electric Corp 半導体記憶装置
US7406494B2 (en) 2002-05-14 2008-07-29 Texas Instruments Incorporated Method of generating a cycle-efficient bit-reverse index array for a wireless communication system
JP2003346484A (ja) 2002-05-23 2003-12-05 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6789099B2 (en) 2002-06-10 2004-09-07 International Business Machines Corporation Sense-amp based adder with source follower evaluation tree
US7054178B1 (en) 2002-09-06 2006-05-30 Etron Technology, Inc. Datapath architecture for high area efficiency
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US7079407B1 (en) 2002-10-18 2006-07-18 Netlogic Microsystems, Inc. Content addressable memory (CAM) device including match line sensing
US6765834B2 (en) 2002-11-19 2004-07-20 Hewlett-Packard Development Company, L.P. System and method for sensing memory cells of an array of memory cells
KR100546307B1 (ko) 2002-12-05 2006-01-26 삼성전자주식회사 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃
US6731542B1 (en) 2002-12-05 2004-05-04 Advanced Micro Devices, Inc. Circuit for accurate memory read operations
US6888372B1 (en) 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
WO2004059651A2 (en) 2002-12-27 2004-07-15 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
US7346903B2 (en) 2003-02-04 2008-03-18 Sun Microsystems, Inc. Compiling and linking modules of a cycle-based logic design
US6768679B1 (en) 2003-02-10 2004-07-27 Advanced Micro Devices, Inc. Selection circuit for accurate memory read operations
US6819612B1 (en) 2003-03-13 2004-11-16 Advanced Micro Devices, Inc. Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage
US7574466B2 (en) 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US9015390B2 (en) 2003-04-25 2015-04-21 Micron Technology, Inc. Active memory data compression system and method
DE10319271A1 (de) 2003-04-29 2004-11-25 Infineon Technologies Ag Speicher-Schaltungsanordnung und Verfahren zur Herstellung
JP3898152B2 (ja) 2003-05-27 2007-03-28 ローム株式会社 演算機能付き記憶装置および演算記憶方法
EP1665286B8 (en) 2003-09-04 2007-09-12 Nxp B.V. Integrated circuit and a method of cache remapping
US6956770B2 (en) 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7177183B2 (en) 2003-09-30 2007-02-13 Sandisk 3D Llc Multiple twin cell non-volatile memory array and logic block structure and method therefor
US7913125B2 (en) 2003-11-04 2011-03-22 Lsi Corporation BISR mode to test the redundant elements and regular functional memory to avoid test escapes
US6950771B1 (en) 2003-12-09 2005-09-27 Xilinx, Inc. Correlation of electrical test data with physical defect data
US7631236B2 (en) 2004-01-29 2009-12-08 International Business Machines Corporation Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method
US7401281B2 (en) 2004-01-29 2008-07-15 International Business Machines Corporation Remote BIST high speed test and redundancy calculation
JP4819316B2 (ja) 2004-02-23 2011-11-24 ルネサスエレクトロニクス株式会社 半導体装置
US7088606B2 (en) 2004-03-10 2006-08-08 Altera Corporation Dynamic RAM storage techniques
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7120063B1 (en) 2004-05-07 2006-10-10 Spansion Llc Flash memory cell and methods for programming and erasing
US8522205B2 (en) 2004-05-18 2013-08-27 Oracle International Corporation Packaging multiple groups of read-only files of an application's components into multiple shared libraries
US20050278505A1 (en) 2004-05-19 2005-12-15 Lim Seow C Microprocessor architecture including zero impact predictive data pre-fetch mechanism for pipeline data memory
JP2006127460A (ja) 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US7061817B2 (en) 2004-06-30 2006-06-13 Micron Technology, Inc. Data path having grounded precharge operation and test compression capability
JP4594666B2 (ja) 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7434024B2 (en) 2004-08-30 2008-10-07 Ati Technologies, Inc. SIMD processor with register addressing, buffer stall and methods
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060149804A1 (en) 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US7230851B2 (en) 2004-12-23 2007-06-12 Sandisk Corporation Reducing floating gate to floating gate coupling effect
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
KR100673901B1 (ko) 2005-01-28 2007-01-25 주식회사 하이닉스반도체 저전압용 반도체 메모리 장치
US7543119B2 (en) 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7624313B2 (en) 2005-03-28 2009-11-24 Hewlett-Packard Development Company, L.P. TCAM BIST with redundancy
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100720644B1 (ko) 2005-11-17 2007-05-21 삼성전자주식회사 메모리 장치 및 메모리 그 동작 방법
JP4804479B2 (ja) 2005-12-13 2011-11-02 スパンション エルエルシー 半導体装置およびその制御方法
JP5129450B2 (ja) 2006-01-16 2013-01-30 ルネサスエレクトロニクス株式会社 情報処理装置
US8077533B2 (en) 2006-01-23 2011-12-13 Freescale Semiconductor, Inc. Memory and method for sensing data in a memory using complementary sensing scheme
JP4989900B2 (ja) 2006-01-31 2012-08-01 ルネサスエレクトロニクス株式会社 並列演算処理装置
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
KR100755370B1 (ko) 2006-04-17 2007-09-04 삼성전자주식회사 반도체 메모리 장치
TW200828333A (en) 2006-04-28 2008-07-01 Samsung Electronics Co Ltd Sense amplifier circuit and sense amplifier-based flip-flop having the same
US7752417B2 (en) 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US8069377B2 (en) 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
US7724559B2 (en) 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7692466B2 (en) 2006-08-18 2010-04-06 Ati Technologies Ulc Sense amplifier based flip-flop
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US7471536B2 (en) 2006-12-08 2008-12-30 Texas Instruments Incorporated Match mismatch emulation scheme for an addressed location in a CAM
US7460387B2 (en) 2007-01-05 2008-12-02 International Business Machines Corporation eDRAM hierarchical differential sense amp
US7743303B2 (en) 2007-01-22 2010-06-22 Micron Technology, Inc. Defective memory block remapping method and system, and memory device and processor-based system using same
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7492640B2 (en) 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
JP2009009665A (ja) 2007-06-29 2009-01-15 Elpida Memory Inc 半導体記憶装置
US7996749B2 (en) 2007-07-03 2011-08-09 Altera Corporation Signal loss detector for high-speed serial interface of a programmable logic device
US7489543B1 (en) 2007-07-25 2009-02-10 Micron Technology, Inc. Programming multilevel cell memory arrays
US7694195B2 (en) 2007-08-14 2010-04-06 Dell Products L.P. System and method for using a memory mapping function to map memory defects
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
US7787319B2 (en) 2007-09-06 2010-08-31 Innovative Silicon Isi Sa Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same
US8042082B2 (en) 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US7965564B2 (en) 2007-09-18 2011-06-21 Zikbit Ltd. Processor arrays made of standard memory cells
US7663928B2 (en) 2007-10-09 2010-02-16 Ememory Technology Inc. Sense amplifier circuit having current mirror architecture
US8156299B2 (en) 2007-10-19 2012-04-10 Virident Systems Inc. Managing memory systems containing components with asymmetric characteristics
US7924628B2 (en) 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
US7979667B2 (en) 2007-12-10 2011-07-12 Spansion Llc Memory array search engine
US7755960B2 (en) 2007-12-17 2010-07-13 Stmicroelectronics Sa Memory including a performance test circuit
US8495438B2 (en) 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement
US7808854B2 (en) 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
JP5194302B2 (ja) 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US8332580B2 (en) 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US20090254694A1 (en) 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US7957206B2 (en) 2008-04-04 2011-06-07 Micron Technology, Inc. Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same
US8339824B2 (en) 2008-07-02 2012-12-25 Cooke Laurence H Nearest neighbor serial content addressable memory
US8281053B2 (en) * 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8417921B2 (en) 2008-08-15 2013-04-09 Apple Inc. Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector
US8555037B2 (en) 2008-08-15 2013-10-08 Apple Inc. Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture
US8259509B2 (en) 2008-08-18 2012-09-04 Elpida Memory, Inc. Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality
ITRM20080543A1 (it) 2008-10-09 2010-04-10 Micron Technology Inc Architettura e metodo per la programmazione di memorie.
KR101596283B1 (ko) 2008-12-19 2016-02-23 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
KR101622922B1 (ko) 2009-03-06 2016-05-20 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
US8484276B2 (en) 2009-03-18 2013-07-09 International Business Machines Corporation Processing array data on SIMD multi-core processor architectures
KR20100134235A (ko) 2009-06-15 2010-12-23 삼성전자주식회사 반도체 메모리 장치
US7898864B2 (en) 2009-06-24 2011-03-01 Sandisk Corporation Read operation for memory with compensation for coupling based on write-erase cycles
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US9076527B2 (en) 2009-07-16 2015-07-07 Mikamonu Group Ltd. Charge sharing in a TCAM array
JP4951041B2 (ja) 2009-08-06 2012-06-13 株式会社東芝 半導体記憶装置
JP5568133B2 (ja) 2009-08-18 2014-08-06 ダウ コーニング コーポレーション 多層経皮パッチ
US8059438B2 (en) 2009-08-28 2011-11-15 International Business Machines Corporation Content addressable memory array programmed to perform logic operations
US8077532B2 (en) 2009-09-02 2011-12-13 Micron Technology, Inc. Small unit internal verify read in a memory device
US8482975B2 (en) 2009-09-14 2013-07-09 Micron Technology, Inc. Memory kink checking
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
WO2011048522A2 (en) 2009-10-21 2011-04-28 Zikbit Ltd. Neighborhood operations for parallel processing
US8650232B2 (en) 2009-10-26 2014-02-11 Via Technologies, Inc. System and method for determination of a horizontal minimum of digital values
KR101634340B1 (ko) 2009-11-03 2016-06-28 삼성전자주식회사 반도체 메모리 장치의 프로그램 방법
US8583896B2 (en) 2009-11-13 2013-11-12 Nec Laboratories America, Inc. Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain
KR20110054773A (ko) 2009-11-18 2011-05-25 삼성전자주식회사 비트라인 디스털번스를 개선하는 반도체 메모리 장치
US8089815B2 (en) 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling
US8605015B2 (en) 2009-12-23 2013-12-10 Syndiant, Inc. Spatial light modulator with masking-comparators
JP2011146102A (ja) 2010-01-15 2011-07-28 Elpida Memory Inc 半導体装置及びデータ処理システム
CN102141905B (zh) 2010-01-29 2015-02-25 上海芯豪微电子有限公司 一种处理器体系结构
US8164942B2 (en) 2010-02-01 2012-04-24 International Business Machines Corporation High performance eDRAM sense amplifier
US8533245B1 (en) 2010-03-03 2013-09-10 Altera Corporation Multipliers with a reduced number of memory blocks
US8243523B2 (en) 2010-03-09 2012-08-14 Micron Technology, Inc. Sensing operations in a memory device
EP2564306A4 (en) 2010-04-27 2017-04-26 Cornell University System and methods for mapping and searching objects in multidimensional space
KR101119371B1 (ko) 2010-04-29 2012-03-06 주식회사 하이닉스반도체 반도체 메모리 장치 및 이의 동작 방법
US8559232B2 (en) 2010-05-03 2013-10-15 Aplus Flash Technology, Inc. DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation
US8351278B2 (en) 2010-06-23 2013-01-08 International Business Machines Corporation Jam latch for latching memory array output data
KR101143471B1 (ko) 2010-07-02 2012-05-11 에스케이하이닉스 주식회사 센스앰프 및 이를 포함하는 반도체 장치
US20120017039A1 (en) 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US8462532B1 (en) 2010-08-31 2013-06-11 Netlogic Microsystems, Inc. Fast quaternary content addressable memory cell
US8347154B2 (en) 2010-09-21 2013-01-01 International Business Machines Corporation Use of hashing function to distinguish random and repeat errors in a memory system
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8332367B2 (en) 2010-10-20 2012-12-11 International Business Machines Corporation Parallel data redundancy removal
KR101148352B1 (ko) 2010-11-02 2012-05-21 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
JP5528987B2 (ja) 2010-11-11 2014-06-25 ピーエスフォー ルクスコ エスエイアールエル 半導体装置
US8553482B2 (en) 2010-11-29 2013-10-08 Apple Inc. Sense amplifier and sense amplifier latch having common control
WO2012104674A1 (en) 2011-01-31 2012-08-09 Freescale Semiconductor, Inc. Integrated circuit device and method for determining an index of an extreme value within an array of values
KR20120088973A (ko) 2011-02-01 2012-08-09 삼성전자주식회사 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치
JP2012174016A (ja) 2011-02-22 2012-09-10 Renesas Electronics Corp データ処理装置およびそのデータ処理方法
JP5259765B2 (ja) 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
US8725730B2 (en) 2011-05-23 2014-05-13 Hewlett-Packard Development Company, L.P. Responding to a query in a data processing system
EP2727114B1 (en) 2011-06-28 2020-04-22 Hewlett-Packard Enterprise Development LP Shiftable memory
US8706958B2 (en) 2011-09-01 2014-04-22 Thomas Hein Data mask encoding in data bit inversion scheme
US20140247673A1 (en) 2011-10-28 2014-09-04 Naveen Muralimanohar Row shifting shiftable memory
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
WO2013078085A1 (en) 2011-11-22 2013-05-30 Mips Technologies, Inc. Processor with kernel mode access to user space virtual addresses
CN105955704B (zh) 2011-11-30 2018-12-04 英特尔公司 用于提供向量横向比较功能的指令和逻辑
US20140108480A1 (en) 2011-12-22 2014-04-17 Elmoustapha Ould-Ahmed-Vall Apparatus and method for vector compute and accumulate
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
US20130286705A1 (en) 2012-04-26 2013-10-31 David B. Grover Low power content addressable memory hitline precharge and sensing circuit
US8938603B2 (en) 2012-05-31 2015-01-20 Samsung Electronics Co., Ltd. Cache system optimized for cache miss detection
US20130332707A1 (en) 2012-06-07 2013-12-12 Intel Corporation Speed up big-number multiplication using single instruction multiple data (simd) architectures
KR102062301B1 (ko) 2013-01-03 2020-01-03 삼성전자주식회사 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법
US20140215185A1 (en) 2013-01-29 2014-07-31 Atmel Norway Fetching instructions of a loop routine
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9177646B2 (en) * 2013-05-06 2015-11-03 International Business Machines Corporation Implementing computational memory from content-addressable memory
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
KR20150091918A (ko) * 2014-02-04 2015-08-12 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9740659B2 (en) * 2014-03-19 2017-08-22 International Business Machines Corporation Merging and sorting arrays on an SIMD processor
CN103985410B (zh) * 2014-04-30 2017-05-24 北京世纪东方国铁科技股份有限公司 一种存储装置及用于存储装置的数据访问方法
CN106415522B (zh) 2014-05-08 2020-07-21 美光科技公司 存储器内轻量一致性
EP3140743B1 (en) 2014-05-08 2021-11-24 Micron Technology, INC. Hybrid memory cube system interconnect directory-based cache coherence methodology

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638317A (en) * 1990-08-22 1997-06-10 Texas Instruments Incorporated Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit
US20040205289A1 (en) * 2003-04-11 2004-10-14 Sujaya Srinivasan Reclaiming blocks in a block-alterable memory
US20140244703A1 (en) * 2013-02-26 2014-08-28 Nvidia Corporation System, method, and computer program product for implementing large integer operations on a graphics processing unit

Also Published As

Publication number Publication date
US9740607B2 (en) 2017-08-22
EP3195315A4 (en) 2018-03-21
US20160062672A1 (en) 2016-03-03
CN106688040B (zh) 2019-08-06
CN106688040A (zh) 2017-05-17
KR101889238B1 (ko) 2018-08-16
WO2016036913A1 (en) 2016-03-10
TW201633055A (zh) 2016-09-16
US20170337128A1 (en) 2017-11-23
EP3195315A1 (en) 2017-07-26
TWI620058B (zh) 2018-04-01
US10157126B2 (en) 2018-12-18
EP3195315B1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
KR101889238B1 (ko) 메모리 내 스왑 동작들
KR101921433B1 (ko) 메모리에서 비교 연산들
US10579336B2 (en) Division operations for memory
US11238920B2 (en) Comparison operations in memory
TWI609264B (zh) 記憶體中之除法運算
TWI596619B (zh) 記憶體中之比較運算
US9928887B2 (en) Data shift by elements of a vector in memory
US9898253B2 (en) Division operations on variable length elements in memory
CN107408403B (zh) 存储器中的最长元素长度确定
WO2016036599A1 (en) Multiplication operations in memory
WO2016036602A1 (en) Multiplication operations in memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant