KR20170016918A - 메모리에서 비교 연산 - Google Patents

메모리에서 비교 연산 Download PDF

Info

Publication number
KR20170016918A
KR20170016918A KR1020177000074A KR20177000074A KR20170016918A KR 20170016918 A KR20170016918 A KR 20170016918A KR 1020177000074 A KR1020177000074 A KR 1020177000074A KR 20177000074 A KR20177000074 A KR 20177000074A KR 20170016918 A KR20170016918 A KR 20170016918A
Authority
KR
South Korea
Prior art keywords
value
bit
sense
values
memory cells
Prior art date
Application number
KR1020177000074A
Other languages
English (en)
Other versions
KR101955126B1 (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 KR20170016918A publication Critical patent/KR20170016918A/ko
Application granted granted Critical
Publication of KR101955126B1 publication Critical patent/KR101955126B1/ko

Links

Images

Classifications

    • 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
    • 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/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • 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/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • 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/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating

Abstract

본 개시의 일례는 메모리 어레이의 감지 라인에 결합된 다수의 메모리 셀들의 제1 부분에 저장된 제1 값의 논리 표현 및 메모리 어레이의 감지 라인에 결합된 다수의 메모리 셀들의 제2 부분에 저장된 제2 값의 논리 표현을 사용하여 메모리에서 비교 연산을 수행하는 것을 포함한다. 비교 연산은 제1 값과 제2 값을 비교하며, 방법은 비교 연산의 결과의 논리 표현을 메모리 어레이의 감지 라인에 결합된 다수의 메모리 셀들의 제3 부분에 저장하는 것을 포함할 수 있다.

Description

메모리에서 비교 연산 {COMPARISON OPERATIONS IN MEMORY}
본 개시는 전반적으로 반도체 메모리 디바이스 및 방법에 관한 것으로, 특히, 메모리에서 비교 연산을 수행하는 것에 관련된 장치 및 방법에 관한 것이다.
메모리 디바이스는 전형적으로 컴퓨터 또는 이외 다른 전자 시스템 내에 내부, 반도체, 집적회로로서 제공된다. 휘발성 및 비휘발성 메모리를 포함하는 많은 서로 상이한 유형의 메모리가 있다. 휘발성 메모리는 이의 데이터(예를 들면, 호스트 데이터, 오류 데이터, 등)을 유지하기 위해 파워를 요구할 수 있으며, 무엇보다도, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 및 사이리스터 랜덤 액세스 메모리(TRAM)를 포함한다. 비휘발성 메모리는 파워가 공급되지 않을 때 저장된 데이터를 유지함으로써 영구 데이터를 제공할 수 있으며, 무엇보다도, NAND 플래시 메모리, NOR 플래시 메모리, PCRAM(phase change random access memory), RRAM(resistive random access memory)와 같은 자기 저항 랜덤 액세스 메모리(MRAM), 및 스핀 토크 전송 랜덤 액세스 메모리(STT RAM)와 같은 자기저항성 랜덤 액세스 메모리(MRAM)를 포함한다.
전자 시스템은 명령을 검색 및 실행하고 실행된 명령의 결과를 적절한 위치에 저장할 수 있는 다수의 처리 자원(예를 들면, 하나 이상의 프로세서)을 종종 포함한다. 프로세서는 예를 들면, 데이터(예를 들면, 하나 이상의 피연산자)에 대해 AND, OR, NOT, NAND, NOR 및 XOR 논리 연산과 같은 논리 연산을 수행하기 위한 명령을 실행할 수 있는 것들인, 산술 논리 유닛(ALU) 회로, 부동 소수점 유닛(FPU) 회로, 및/또는 조합 논리 블록과 같은 다수의 기능 유닛(예를 들면, 본원에서는 기능 유닛 회로(FUC)이라 함)을 포함할 수 있다.
전자 시스템 내의 다수의 구성 컴포넌트는 실행을 위해 기능 유닛 회로에 명령을 제공하는 것과 관련될 수 있다. 명령들은, 예를 들면, 제어기 및/또는 호스트 프로세서와 같은 처리 자원에 의해 생성될 수 있다. 데이터(예를 들면, 논리 연산을 수행하기 위해 명령들이 실행될 피연산자)는 FUC에 의해 액세스가능한 메모리 어레이에 저장될 수 있다. 명령들 및/또는 데이터는 메모리 어레이로부터 검색될 수 있고, FUC가 데이터에 대해 명령들을 실행하기 전에 시퀀싱 및/또는 버퍼링될 수 있다. 또한, 상이한 유형의 연산이 FUC를 통해 하나 또는 다수의 클록 사이클 내에 실행될 수 있기 때문에, 연산 및/또는 데이터의 중간 결과 또한 시퀀싱 및/또는 버퍼링될 수 있다.
많은 경우, 처리 자원(예를 들면, 프로세서 및/또는 연관된 FUC)은 메모리 어레이의 외부에 있을 수 있고, 데이터가 액세스될 수 있다(예를 들면, 명령을 실행하기 위해 처리 자원과 메모리 어레이 간에 버스를 통해). 데이터는 메모리 어레이로부터 버스를 통해 메모리 어레이 외부의 레지스터로 이동될 수 있다.
도 1은 본 개시의 다수의 실시예에 따라 메모리 디바이스를 포함하는 계산 시스템 형태의 장치의 블록도이다.
도 2a는 본 개시의 다수의 실시예에 따라 메모리 어레이의 일부의 개략도이다.
도 2b는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도이다.
도 2ca 및 도 2cb는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도이다.
도 2da 및 도 2db는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도이다.
도 2e는 본 개시의 다수의 실시예에 따라 감지 회로에 결합된 메모리 어레이의 일부의 개략도이다.
도 3a는 본 개시의 다수의 실시예에 따라 직렬 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이의 일부분의 셀들의 상태를 도시한 논리도이다.
도 3b는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 나타내는 논리도이다.
도 3c는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 나타내는 논리도이다.
도 3d는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3e는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3f는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3g는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3h는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 나타내는 논리도이다.
도 3i는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3j는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3k는 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3l은 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시하는 논리도이다.
도 3m은 비교 연산을 수행하는 것과 관련된 특정 위상에서 어레이 부분의 셀들의 상태를 도시 한 논리도이다.
도 4는 본 개시의 다수의 실시예에 따른 감지 회로의 개략도이다.
도 5는 본 발명의 다수의 실시예에 따른 감지 회로의 일부의 개략도이다.
도 6a는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도이다.
도 6b는 본 발명의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도이다.
도 7은 본 발명의 다수의 실시예에 따라 선택가능한 논리 연산 선택 논리를 갖는 감지 회로를 도시하는 개략도이다.
도 8은 본 발명의 다수의 실시예에 따른 감지 회로에 의해 구현된 선택가능한 논리 연산 결과를 나타내는 논리 표이다.
본 발명은 메모리에 대한 비교 연산에 관계된 장치 및 방법을 포함한다. 비트-벡터에(예를 들면, 메모리 어레이에) 저장가능한 논리 값들의 예는 감지 라인에 및 제1 개수의 선택 라인에 결합된 메모리 셀을 포함하는 제1 어드레스 공간을 포함한다. 제1 어드레스 공간의 메모리 셀은 제1 값을 저장할 수 있다. 제2 어드레스 공간은 감지 라인에 그리고 제2 개수의 선택 라인에 결합된 메모리 셀을 포함한다. 제2 어드레스 공간의 메모리 셀은 제2 값을 저장할 수 있다. 비교 연산의 결과는 감지 라인에 그리고 제3 개수의 선택 라인에 결합된 메모리 셀을 포함하는 제3 어드레스 공간에 저장된다. 제3 어드레스 공간의 메모리 셀은 비교 연산의 결과의 논리 표현을 저장할 수 있다.
본원에서 사용되는 바와 같이, 제1 값 및 제2 값은 서로 비교되는 수치 값이다. 즉, 제1 값은 제2 값과 비교될 수 있고 및/또는 제2 값은 제1 값과 비교될 수 있다. 비교 연산은 제1 값이 제2 값보다 큰지, 제2 값이 제1 값보다 큰지 및/또는 제1 값이 제2 값과 동일한지 여부를 결정할 수 있다.
본 개시의 다수의 실시예는 이전의 접근법에 비해 다수의 비교 연산(예를 들면, 비교 함수)을 수행하는데 수반되는 계산 횟수 및 시간의 감소를 제공할 수 있다. 다수의 비교 연산이 병렬로(예를 들면, 동시에) 수행될 수 있기 때문에 계산 및 시간이 감소될 수 있다. 병렬로 다수의 비교 연산을 수행하는 것은 다수의 비교 연산을 수행하는 것에 수반되는 계산을 감소시킬 수 있다. 다수의 비교 연산을 병렬로 수행하는 것은 다수의 계산을 수행함에 있어서 파워 소비를 감소시킬 수 있다. 예를 들어, 논리적으로(예를 들면, 메모리 어레이 내 다수의 메모리 셀 내에 바이너리 형태로) 저장된 데이터(예를 들면, 제1 값 및 제2 값)를 사용하여 비교 연산을 수행하기 위한 다수의 실시예가 제공될 수 있다. 실시예는 버스(예컨대, 데이터 버스, 어드레스 버스, 제어 버스, 등)를 통해 메모리 어레이 및/또는 감지 회로로부터 데이터를 전송하지 않고 비교 연산을 수행할 수 있다. 비교 연산은 다수의 논리 연산(예를 들면, AND, OR, XOR, 등)을 수행하는 것을 포함할 수 있다. 그러나, 실시예는 이들 예로 한정되지 않는다.
이전의 접근법에서, 데이터(예를 들면, 제1 값 및 제2 값)는 입/출력(I/O) 라인을 포함하는 버스를 통해 어레이 및 감지 회로로부터 다수의 레지스터로 전송될 수 있다. 다수의 레지스터는 ALU 회로 및/또는 적절한 논리 연산을 수행하도록 구성된 다른 기능 유닛 회로를 포함할 수 있는, 프로세서, 마이크로 프로세서 및/또는 연산 엔진과 같은 처리 자원에 의해 사용될 수 있다. 그러나 ALU 회로에 의해 하나의 비교 함수만 수행될 수 있다. 버스를 통해 메모리로/로부터 레지스터로/로부터 데이터를 전송하는 것은 상당한 파워 소비 및 시간 요건을 수반할 수 있다. 처리 자원이 메모리 어레이와 동일한 칩 상에 있다고 하더라도, 어레이로부터 계산 회로로 데이터를 이동시키는 데 상당한 파워가 소비될 수 있는데, 이는 감지 라인으로부터 I/O 라인에 데이터를 전송하기 위해 감지 라인 어드레스 액세스(예를 들어, 열 디코드 신호의 파이어)를 수행하고, 데이터를 어레이 주변부로 이동시키고, 예를 들어, 비교 함수와 관련하여 레지스터에 데이터를 제공하는 것을 수반할 수 있다.
본 개시의 다음의 상세한 설명에서, 본 명세서의 일부를 형성하고 본 개시의 하나 이상의 실시예가 어떻게 실시될 수 있는지를 예로서 도시한 첨부 도면을 참조한다. 이러한 실시예들은 당업자가 본 개시의 실시예를 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예들이 이용될 수 있고, 프로세스, 전기적 및/또는 구조적 변경이 본 개시의 범위 내에서 이루어질 수 있다는 것이 이해되어야한다. 본원에서 사용되는 바와 같이, 특히 도면에서 참조부호에 관하여 지시어, "N", "M", "F", "R" 및 "P"는 이와 같이 지정된 다수의 특정한 특징이 포함될 수 있음을 나타낸다. 본원에서 사용되는 바와 같이, "다수의" 특정한 것은 하나 이상의 이러한 것들을 지칭할 수 있다(예를 들면, 다수의 메모리 어레이는 하나 이상의 메모리 어레이를 지칭할 수 있다).
본원의 도면은 제1 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자들은 도면에서 요소 또는 구성 컴포넌트를 식별하는 숫자매김 관례를 따른다. 서로 다른 도면 간에 유사한 요소 또는 구성 컴포넌트는 유사한 숫자를 사용하여 식별될 수 있다. 예를 들어, 204는 도 2a에서 요소 "04"를 지칭할 수 있고, 유사한 요소는 도 3a에서 304로서 지칭될 수 있다. 알게 되는 바와 같이, 본원의 여러 실시예들에 도시된 요소들은 본 개시의 다수의 추가적인 실시예들을 제공하기 위해 추가, 교환 및/또는 제거될 수 있다. 또한, 알게 되는 바와 같이, 도면에 제공된 구성 컴포넌트의 비율 및 상대적인 스케일은 본 발명의 특정 실시예를 설명하기 위한 것으로 제한적인 의미로 해석되어서는 안 된다.
도 1은 본 개시의 다수의 실시예에 따라 메모리 디바이스(160)를 포함하는 계산 시스템(100) 형태의 장치의 블록도이다. 본원에서 사용되는 바와 같이, 메모리 디바이스(160), 메모리 어레이(130), 및/또는 감지 회로(150)는 또한 개별적으로 "장치"로 간주될 수도 있다.
시스템(100)은 메모리 어레이(130)를 포함하는 메모리 디바이스(160)에 결합된 호스트(110)를 포함한다. 호스트(110)는 다양한 다른 유형의 호스트들 중 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 이동 전화 또는 메모리 카드 판독기와 같은 호스트 시스템일 수 있다. 호스트(110)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있으며, 다수의 처리 자원(예를 들면, 하나 이상의 프로세서, 마이크로 프로세서 또는 일부 다른 유형의 제어 회로)를 포함할 수 있다. 시스템(100)은 개별적인 집적회로를 포함할 수 있거나 호스트(110) 및 메모리 디바이스(160) 둘 모두는 동일한 집적회로 상에 있을 수 있다. 시스템(100)은 예를 들면 서버 시스템 및/또는 고성능 계산(HPC) 시스템 및/또는 그 일부일 수 있다. 도 1에 도시된 예가 폰 노이만 구조를 갖는 시스템을 예시하고 있지만, 본 개시의 실시예들은 종종 폰 노이만 아키텍처에 연관되는 하나 이상의 구성 컴포넌트(예를 들면, CPU, ALU, 등)을 포함하지 않을 수도 있는 비-폰 노이만(non-Von Neumann) 아키텍처(예를 들면, 튜링 기계)에서 구현될 수 있다.
명료함을 위해, 시스템(100)은 본 개시에 특정한 관련성을 갖는 특징들에 초점을 맞추기 위해 간략화되었다. 메모리 어레이(130)는 예를 들어 DRAM 어레이, SRAM 어레이, STT RAM 어레이, PCRAM 어레이, TRAM 어레이, RRAM 어레이, NAND 플래시 어레이 및/또는 NOR 플래시 어레이일 수 있다. 어레이(130)는 선택 라인(본원에서 워드 라인 또는 액세스 라인으로 지칭될 수 있음)에 의해 결합된 행 및 감지 라인(본 명원에서 디지트 라인 또는 데이터 라인으로 지칭 됨)에 의해 결합된 열로 배열된 메모리 셀을 포함할 수 있다. 단일 어레이(130)가 도 1에 도시되어 있지만, 실시예는 이에 제한되지 않는다. 예를 들어, 메모리 디바이스(160)는 다수의 어레이(130)(예를 들면, 다수의 DRAM 셀 뱅크)를 포함할 수 있다. 예시적인 DRAM 어레이가 도 2a와 관련하여 설명된다.
메모리 디바이스(160)는 I/O 회로(144)를 통해 I/O 버스(156)(예를 들면, 데이터 버스)를 통해 제공된 어드레스 신호를 래치하기 위한 어드레스 회로(142)를 포함한다. 어드레스 신호는 메모리 어레이(130)에 액세스하기 위해 행 디코더(146) 및 열 디코더(152)에 의해 수신되고 디코딩된다. 많은 예들에서, 어드레스 신호들은 더 많거나 적은 행 디코더들에 의해 디코딩될 수 있다. 예를 들어, 메모리 디바이스는 3개의 행 디코더를 포함할 수 있다. 본원에서 사용되는 바와 같이, 행 디코더는 선택 디코더라 지칭될 수 있다. 데이터는 감지 회로(150)를 사용하여 감지 라인 상의 전압 및/또는 전류 변화를 감지함으로써 메모리 어레이(130)로부터 판독될 수 있다. 감지 회로(150)는 메모리 어레이(130)로부터 한 페이지(예를 들면, 행)의 데이터를 판독하여 래치할 수 있다. I/O 회로(144)는 I/O 버스(156)를 통해 호스트(110)와의 양방향 데이터 통신을 위해 사용될 수 있다. 기록 회로(148)는 메모리 어레이(130)에 데이터를 기록하는데 사용된다.
다수의 예에서, 디코딩이라는 용어는 프리(pre)-디코딩, 최종 디코딩 및/또는 행 디코더(146) 및/또는 열 디코더(152)에서 수행되는 임의의 다른 유형의 디코딩을 포함할 수 있다. 다수의 예에서, 프리-디코딩이라는 용어는 어드레스가 이산적으로 어드레스되지 않도록 프리-디코딩 프로세스를 구현하는 회로를 포함한다. 프리-디코딩 및 디코딩이라는 용어는 본원에서는 이산적으로 어드레스가능한 라인 및/또는 개별적으로 어드레스가능한 라인이라는 용어를 구별하기 위해 사용될 수 있다.
다수의 예들에서, 메모리 어레이(130) 내의 다수의 선택 라인들 및/또는 감지 라인들은 메모리 어레이(130)의 다른 선택 라인들 및/또는 감지 라인들과는 개별적으로 어드레싱되고 및/또는 독립적으로 디코딩될 수 있다. 본원에서 사용되는 바와 같이, 이산적 어드레스는 특정 선택 라인을 활성화하기 위해 디코딩을 필요로하지 않는 어드레스일 수 있다. 예를 들어, 어드레스 회로(142)는 다수의 선택 라인에 관련된 어드레스를 디코딩하지 않고 활성화될 수 있는 다수의 선택 라인과 관련된 어드레스를 수신할 수 있다. 많은 예들에서, 개별적으로 어드레싱된 행 및/또는 이산적인 어드레스 행은 완전 디코드된 행이라 지칭될 수 있다. 메모리 어레이(130)와 관련된 메모리 셀은 예를 들어, 다른 메모리 구성 중에서, DRAM 어레이, SRAM 어레이, STT RAM 어레이, PCRAM 어레이, TRAM 어레이, RRAM 어레이, NAND 플래시 어레이 및/또는 NOR 플래시 어레이에서 사용되는 메모리 셀을 포함할 수 있다.
제어 회로(140)는 호스트(110)로부터 제어 버스(154)에 의해 제공된 신호를 디코딩한다. 이들 신호는 데이터 판독, 데이터 기록 및 데이터 소거 동작을 포함하여 메모리 어레이(130) 상에서 수행되는 동작을 제어하기 위해 사용되는 칩 인에이블 신호, 기록 인에이블 신호 및 어드레스 래치 신호를 포함할 수 있다. 여러 실시예들에서, 제어 회로(140)는 호스트(110)로부터 명령들을 실행하는 것을 담당한다. 제어 회로(140)는 상태 머신, 시퀀서, 또는 어떤 다른 유형의 제어기일 수 있다.
감지 회로(150)의 예는 도 2a 및 도 3a-도 3m과 관련하여 이하에서 더 설명된다. 예를 들어, 다수의 실시예에서, 감지 회로(150)는 다수의 감지 증폭기 및 다수의 계산 컴포넌트를 포함할 수 있는데, 이들은 누산기를 포함할 수 있고 논리 연산(예를 들면, 보수 감지 라인(complementary sense line)에 연관된 데이터에 대해)을 수행하기 위해 사용될 수 있다. 다수의 실시예에서, 감지 회로(예를 들면, 150)는 어레이(130)에 저장된 데이터를 입력으로서 사용하여 비교 연산을 수행하고 비교 연산의 결과를 감지 라인 어드레스 액세스를 통해 전송하지 않고(예를 들면, 열 디코드 신호를 파이어하지 않고) 어레이(130)에 다시 저장하기 위해 사용될 수 있다. 메모리 어레이(130) 내의 선택 라인들 및 감지 라인들에 결합된 메모리 셀들은 비교 연산의 수행 동안 및/또는 비교 연산들을 수행하는데 관련된 계산들 동안 일시적인 저장장치(예를 들면, 레지스터들)로서의 역할을 할 수 있다. 따라서, 비교 함수는 감지 회로 외부에 처리 자원에 의해(예를 들면, 호스트(110) 및/또는 디바이스(160)(예를 들면, 제어 회로(140) 또는 다른 곳에) 상에 위치된 ALU 회로와 같은 다른 처리 회로에 연관된 프로세서에 의해) 수행되지 않고 및/또는 이에 부가하여 감지 회로(150)를 사용하여 수행될 수 있다.
여러 이전의 접근법들에서, 예를 들어, 비교 연산과 관련된 데이터는 감지 회로를 통해 메모리로부터 판독되어 외부 ALU에 제공될 것이다. 외부 ALU 회로는 피연산자를 사용하여 비교 함수를 수행할 것이며 결과는 로컬 I/O 라인을 통해 어레이로 다시 전송될 수도 있을 것이다. 대조적으로, 본 개시의 다수의 실시예에서, 감지 회로(예컨대, 150)는 메모리 어레이(130) 내 메모리 셀에 저장된 데이터에 대해 비교 연산을 수행하고 그 결과를 감지 회로에 결합된 로컬 I/O 라인을 인에이블함이 없이 어레이(130)에 다시 저장하도록 구성된다.
따라서, 다수의 실시예에서, 감지 회로(150)가 메모리 어레이(130)의 어드레스 공간을 사용하여 비교 함수를 수행하는데 연루된 적절한 계산을 수행할 수 있기 때문에, 어레이(130) 및 감지 회로(150) 외부의 레지스터 및/또는 ALU는 비교 함수를 수행하는 데 필요하지 않을 수 있다. 또한, 비교 함수는 외부 처리 자원의 사용없이 수행될 수 있다.
도 2a는 본 개시의 다수의 실시예에 따른 메모리 어레이(230)의 일부의 개략도를 도시한다. 이 예에서, 메모리 어레이(230)는 액세스 디바이스(202)(예를 들면, 트랜지스터) 및 저장 소자(203)(예를 들면, 커패시터)로 각각 구성되는 1T1C(하나의 트랜지스터 하나의 커패시터) 메모리 셀들(270-0, 270-1, 270-2,..., 270-N-1, 270-N)(예를 들면, 집합적으로 메모리 셀(270)이라 지칭됨)의 DRAM 어레이이다.
다수의 실시예에서, 메모리 셀(270)은 파괴 판독 메모리 셀(예를 들면, 셀에 저장된 데이터를 판독하는 것은 셀에 원래 저장되어 있는 데이터가 판독된 후에 리프레시되도록 데이터를 파괴한다)이다. 메모리 셀들(270)은 선택 라인들(204-0(Row0), 204-1(Row1), 204-2(Row2),..., 204-N-1(RowN-1), 204-N(RowN))에 의해 결합된 행들(예를 들면, 집합적으로 선택 라인(204)이라 지칭됨) 및 감지 라인들(예를 들면, 디지트 라인들)(205-0(D), 205-1(D_))(예를 들면, 집합적으로 감지 라인(205)이라 지칭됨)에 의해 결합된 열들로 배열된다. 다수의 실시예에서, 어레이(230)는 별도의 회로에 결합된 어드레스 공간을 포함할 수 있다.
이 예에서, 셀의 각 열은 한쌍의 보수 감지 라인(205-0(D), 205-1(D_))과 연관된다. 도 2a에 도시된 구조는 많은 보수 감지 라인(205), 선택 라인(204) 및/또는 메모리 셀(270)을 제공하는데 사용될 수 있다. 메모리 셀(270)의 단 하나의 열만이 도 2a에 도시되어 있지만, 실시예는 이에 제한되지 않는다. 예를 들어, 특정 어레이는 다수의 열의 셀 및/또는 감지 라인(예를 들면, 4,096, 8,192, 16,384, 등)을 가질 수 있다. 도 2a에서, 메모리 셀들(270)은 감지 라인(205-0)에 결합된다. 특정 셀 트랜지스터(202)의 게이트는 이의 대응하는 선택 라인(204-0 내지 204-N)(예를 들면, 집합적으로 선택 라인(204)으로 지칭 됨)에 결합되고, 제1 소스/드레인 영역은 이의 대응하는 감지 라인(205-0)에 결합되고, 특정 셀 트랜지스터의 제2 소스/드레인 영역은 대응하는 커패시터, 예를 들어, 커패시터(203)에 결합된다. 도 2a에 도시되지는 않았지만, 감지 라인(205-1)은 또한 이에 결합된 메모리 셀을 가질 수 있다.
다수의 예에서, 감지 라인(205-0)에 결합되는 메모리 셀들(270)은 비트들을 저장할 수 있다. 비트는 값 및/또는 다수의 값(예를 들면, 제1 값, 제2 값, 임시 값 및/또는 결과 값)의 논리 표현을 나타낼 수 있다. 예를 들어, 제1 값은 감지 라인(205-0)을 따라 메모리 셀(270-0), 메모리 셀(270-1), 및 메모리 셀(270-2)에 저장될 수 있는 3 비트-벡터로 표현될 수 있다. 다수의 예에서, 비트-벡터는 도 2a에서 논의된 것보다 많거나 적은 비트로 표현될 수 있다. 다른 예가 도 3a 내지 도 3m과 관련하여 논의된다. 예를 들어, 제1 값은 다른 비트-벡터 차원 중에서 4 비트-벡터, 8 비트-벡터, 16 비트-벡터 및/또는 32 비트-벡터로 나타낼 수 있다. 다수의 예에서, 값의 각각의 비트-벡터 표현은 감지 라인(205)을 따라 수직으로와는 반대로 선택 라인(204)을 따라 수평으로 저장될 수 있다.
값의 각각의 비트-벡터 논리 표현은 인덱싱될 수 있다. 예를 들어, 메모리 셀(270-0)에 저장된 비트는 제1 인덱스와 연관될 수 있고, 메모리 셀(270-1)에 저장된 비트는 제2 인덱스와 연관될 수 있고, 메모리 셀(270-2)에 저장된 비트는 제3 인덱스와 연관될 수 있다. 예로서, 제3 인덱스는 저장된 비트-벡터의 최상위 비트(MSB : most significant bit)를 나타낼 수 있고, 제1 인덱스는 저장된 비트-벡터의 최하위 비트(LSB : least significant bit)를 나타낼 수 있다. 다수의 예에서, 비교 연산은 제1 값의 논리 표현을 나타내는 비트를 제2 값의 논리 표현을 나타내는 비트와 비교함으로써 수행될 수 있다. 비교 연산은 먼저 제1 값의 논리 표현으로부터의 최상위 비트를 제2 값의 논리 표현으로부터의 최상위 비트와 비교함으로써 수행될 수 있다. 비교 연산은 제1 값의 논리 표현으로부터의 다음 최상위 비트를 제2 값의 논리 표현으로부터 다음 최상위 비트와 비교함으로써 계속될 수 있다. 다음 최상위 비트는 비교 연산의 반복이 수행 될 때마다 감소되는 인덱스와 연관된 비트를 나타낼 수 있다.
도 2a와 관련하여 사용된 인덱싱은 예시적이며 제한적이지 않다. 이외 다른 인덱싱 시스템 및/또는 순서가 다수의 실시예에서 사용될 수 있다. 예를 들어, 메모리(270-2)에 저장된 비트는 제1 인덱스와 연관될 수 있고, 메모리 셀(270-1)에 저장된 비트는 제2 인덱스와 연관될 수 있으며, 메모리 셀(270-3)에 저장된 비트는 제3 인덱스와 연관될 수 있다. 또한, 여기에 설명된 동작은 다수의 상이한 레이아웃 및/또는 메모리 셀 배향을 사용하여 수행될 수 있다.
다수의 값들이 메모리 어레이(230)의 각각의 감지 라인 각각에 저장될 수 있다. 예를 들어, 메모리 셀들(270-0, 270-1, 270-2)은 제1 값을 나타내는 다수의 비트들을 저장할 수 있고, 메모리 셀들(270-3, 270-4, 270-5)은 제2 값을 나타내는 다수의 비트들을 저장할 수 있고, 메모리 셀(270-6)은 제1 임시 값을 나타내는 다수의 비트들을 저장할 수 있고, 메모리 셀(270-7)은 제2 임시 값을 나타내는 다수의 비트들을 저장할 수 있고, 메모리 셀들(270-8, 270-9)은 비교 연산의 결과를 나타내는 다수의 비트들을 저장할 수 있고 반면, 메모리 셀(270-4) 내지 메모리 셀(270-9)은 이들이 메모리 셀들(270-0...270-N)의 범위에 포함되어 있어 도 2a에 도시되지 않았다. 도시된 메모리 셀(270-0 내지 270-9)은 제1 감지 라인에 결합된다. 상이한 감지 라인에 결합된 메모리 셀들은 상이한 제1 값, 상이한 제2 값, 상이한 제1 임시 값, 상이한 제2 임시 값 및/또는 상이한 비교 연산의 상이한 결과를 나타내는 다수의 비트들을 저장할 수 있다.
다수의 예들에서, 선택 라인(204-0) 및 다수의 감지 라인들(예를 들면, 감지 라인(205-0) 및 감지 라인(205-1))에 결합된 메모리 셀들은 병렬로 활성화될 수 있다. 또한, 메모리 셀(270-0), 메모리 셀(270-1), 메모리 셀(270-2), 메모리 셀(270-3)은 선택 라인(204-0), 선택 라인(204-1), 선택 라인(204-2), 및 선택 라인(204-3)을 병렬로 활성화함으로써 병렬로 활성화될 수 있다. 다수의 예에서, 독립적으로 어드레싱된 선택 라인(204) 및/또는 감지 라인(205)은 병렬로 활성화되어 다수의 메모리 셀을 병렬로 활성화할 수 있다.
감지 회로(250)는 감지 증폭기(206) 및 계산 컴포넌트(231)을 포함한다. 감지 회로(250)는 도 1에 도시된 감지 회로(150)일 수 있다. 도 2a는 또한 메모리 어레이(230)에 결합된 감지 회로(250)를 도시한다. 감지 증폭기(206)는 메모리 셀의 특정 열에 대응하는 보수 감지 라인(D, D_)에 결합된다. 감지 증폭기(206)는 선택된 셀(예를 들면, 메모리 셀들(270))에 저장된 상태(예를 들면, 논리 데이터 값)를 결정하도록 동작될 수 있다. 실시예들은 주어진 감지 증폭기 아키텍처 또는 유형으로 제한되지 않는다. 예를 들어, 본원에 설명된 다수의 실시예에 따른 감지 회로는 전류 모드 감지 증폭기 및/또는 단일-엔드 감지 증폭기(예를 들면, 하나의 감지 라인에 결합된 감지 증폭기)를 포함할 수 있다.
다수의 실시예에서, 계산 컴포넌트(231)은 특정 피처 크기(예를 들면, 4F2, 6F2 등)에 순응할 수 있는, 감지 증폭기(206)의 트랜지스터 및/또는 어레이(예를 들면, 230)의 메모리 셀(270)을 가진 피치(pitch) 상에 형성된 다수의 트랜지스터를 포함할 수 있다. 본원에서 사용되는 바와 같이, 피치 상에라는 것은 동일한 열을 따라 동일한 감지 라인에 결합되는 회로를 기술하기 위해 사용된다. 후술하는 바와 같이, 계산 컴포넌트(231)은 감지 증폭기(206)와 함께, 어레이(230)의 메모리 셀(270)로부터의 데이터를 입력으로 사용하여 비교 연산을 수행하고 그 결과를 어레이(230) 내 메모리 셀(270)에 다시 저장될 수 있다(예를 들면, 데이터가 로컬 I/O 라인을 통해 어레이 및 감지 회로로부터 외부의 회로에 전송되도록 열 디코드 신호를 파이어하지 않고). 이에 따라, 본 개시의 다수의 실시예는 종래의 다양한 접근법보다 적은 파워를 사용하여 비교 연산 및 이와 관련된 계산을 수행할 수 있게 한다. 또한, 다수의 실시예가 계산 기능을 수행하기 위해 로컬 I/O 라인을 통해 데이터를 전송할 필요성을 없애기 때문에, 다수의 실시예는 종래의 접근법과 비교하여 계산 컴포넌트(231) 및 메모리 셀(270)을 사용하여 증가된 병렬 처리 능력을 가능하게 할 수 있다.
도 2a에 도시된 예에서, 계산 컴포넌트(231)에 대응하는 회로는 각각의 감지 라인(D, D_) 각각에 결합된 5개의 트랜지스터를 포함하는데, 그러나, 실시예들은 이 예로 제한되지 않는다. 트랜지스터(207-1, 207-2)는 각각 감지 라인(D, D_)에 결합된 제1 소스/드레인 영역, 및 교차 결합된 래치에 결합된(예를 들면, 교차 결합된 NMOS 트랜지스터(208-1, 208-2) 및 교차 결합된 PMOS 트랜지스터(209-1, 209-2)과 같은, 교차 결합된 한쌍의 트랜지스터의 게이트에 결합된) 제2 소스/드레인 영역을 갖는다. 본원에서 더 설명되는 바와 같이, 트랜지스터(208-1, 208-2, 209-1, 209-2)를 포함하는 교차 결합된 래치는 2차 래치라 칭할 수 있다(예를 들면, 본원에서는 감지 증폭기(206)에 대응하는 교차 결합 래치는 1차 래치라 칭할 수 있다).
트랜지스터(207-1, 207-2)는 패스 트랜지스터로 지칭될 수 있는데, 이들은 각각의 감지 라인(D, D_) 상의 전압 또는 전류를 트랜지스터(208-1, 208-2, 209-1, 209-2)를 포함하는 교차 결합 래치의 입력(예를 들어, 2차 래치의 입력)에 전달하기 위해서 각각의 신호(211-1(Passd), 211-2(Passdb))를 통해 인에이블될 수 있다. 이 예에서, 트랜지스터(207-1)의 제2 소스/드레인 영역은 트랜지스터(208-1, 209-1)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(208-2, 209-2)의 게이트에도 결합된다. 유사하게, 트랜지스터(207-2)의 제2 소스/드레인 영역은 트랜지스터(208-2, 209-2)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(208-1, 209-1)의 게이트에도 결합된다.
트랜지스터(208-1, 208-2)의 제2 소스/드레인 영역은 네거티브 제어 신호(212-1)(Accumb)에 공통으로 결합된다. 트랜지스터(209-1, 209-2)의 제2 소스/드레인 영역은 포지티브 제어 신호(212-2)(Accum)에 공통으로 결합된다. Accum 신호(212-2)는 서플라이 전압(예를 들면, Vcc)일 수 있고, Accumb 신호는 기준 전압(예를 들면, 접지)일 수 있다. 인에이블 신호(212-1, 212-2)는 2차 래치에 대응하는 트랜지스터(208-1, 208-2, 209-1, 209-2)를 포함하는 교차 결합 래치를 활성화한다. 활성화된 교차 결합 래치는 노드(217-1)가 Accum 신호 전압 및 Accumb 신호 전압 중 하나(예를 들면, Vcc 및 접지 중 하나로)로 구동되고, 노드(217-2)는 Accum 신호 전압 및 Accumb 신호 전압 중 다른 하나로 구동되게 공통 노드(217-1)와 공통 노드(217-2) 간에 차동 전압을 증폭한다. 후술되는 바와 같이, 제2 래치가 논리 연산(예를 들면, 비교 연산)을 수행하는 데 사용되면서도 누산기로서의 역할을 할 수 있기 때문에, 신호(212-1, 212-2)는 "Accum" 및 "Accumb"으로 표기된다. 다수의 실시예에서, 누산기는 패스 트랜지스터(207-1, 207-2) 뿐만 아니라 제2 래치를 형성하는 교차 결합된 트랜지스터(208-1, 208-2, 209-1, 209-2)를 포함한다. 본원에서 추가로 설명되는 바와 같이, 다수의 실시예에서, 감지 증폭기에 결합된 누산기를 포함하는 계산 컴포넌트는 한 쌍의 보수 감지 라인 중 적어도 하나 상에 신호(예를 들면, 전압 또는 전류)에 의해 표현된 데이터 값에 대해 누산 연산을 수행하는 것을 포함하는 논리 연산을 수행하도록 구성될 수 있다.
계산 컴포넌트(231)은 또한 각각의 디지트 라인들(D, D_)에 결합된 제1 소스/드레인 영역을 갖는 반전 트랜지스터(214-1, 214-2)를 포함한다. 트랜지스터(214-1, 214-2)의 제2 소스/드레인 영역은 각각 트랜지스터(216-1, 216-2)의 제1 소스/드레인 영역에 결합된다. 트랜지스터(214-1, 214-2)의 게이트는 신호(213)(InvD)에 결합된다. 트랜지스터(216-1)의 게이트는 트랜지스터(208-2)의 게이트, 트랜지스터(209-2)의 게이트 및 트랜지스터(208-1, 209-1)의 제1 소스/드레인 영역 또한 결합되는 공통 노드(217-1)에 결합된다. 상보적인 방식으로, 트랜지스터(216-2)의 게이트는 트랜지스터(208-1)의 게이트, 트랜지스터(209-1)의 게이트, 및 트랜지스터(208-2, 209-2))의 제1 소스/드레인 영역 또한 결합되는 공통 노드(217-2)에 결합된다. 이에 따라, 인에이블 신호(InvD)는 제2 래치에 저장된 데이터 값을 반전시키는 역할을 하고 반전된 값을 감지 라인(205-0 및 205-1)에 구동한다.
도 2a에서, 계산 컴포넌트(231)은 비교 연산을 수행하도록 구성된다. 다음의 예는 어레이(230)에 저장된 데이터를 입력으로서 사용하여 비교 연산이 어떻게 수행될 수 있는가와 비교 연산의 결과가 감지 회로(예를 들면, 감지 증폭기(206) 및 계산 컴포넌트(231))의 동작을 통해 어레이에 어떻게 저장될 수 있는가를 입증할 것이다. 이 예는 선택 라인(204-0 내지 204-N)에 결합되고 감지 라인(205-0)에 공통으로 결합된 메모리 셀(270)에 저장된 데이터 값(예컨대, 논리 "1" 또는 논리 "0"을 갖는 비트)을 비교 연산에 대한 각각의 입력으로서 사용하는 것을 수반한다. 비교 연산의 결과는 감지 라인(205-0)에 결합된 메모리 셀에 다시 저장될 수 있다.
일례로서, 계산 컴포넌트(231)은 감지 라인(205-0)에 결합된 다수의 메모리 셀(270)의 제1 부분 및 제2 부분에 저장된 제1 값 및 제2 값을 사용할 수 있다. 제1 부분은 제1 어드레스 공간에 제1 개수의 메모리 셀들(예를 들면, 메모리 셀들(270-0, 270-1, 270-2))을 포함할 수 있다. 제2 부분은 제2 어드레스 공간에 제2 개수의 메모리 셀들(예를 들면, 메모리 셀들(270-3, 270-4, 270-5))을 포함할 수 있다. 비교 연산의 결과는 제3 어드레스 공간에서 메모리 셀(270)의 제3 부분(예를 들면, 메모리 셀(270-8, 270-9))에 저장될 수 있다.
비교 연산을 수행하는 것은 제1 값의 논리 표현이 메모리 셀들(270)의 제1 부분에 저장되기 전에 메모리 셀들(270)의 제1 부분을 소거하는 것을 포함할 수 있다. 비교 연산을 수행하는 것은 또한 제2 값의 논리 표현이 메모리 셀들(270)의 제2 부분에 저장되기 전에 메모리 셀(270)의 제2 부분을 소거하는 것을 포함할 수 있다. 비교 연산을 수행하는 것은 또한 비교 연산의 결과가 메모리 셀(270)의 제3 부분에 저장되기 전에 메모리 셀(270)의 제3 부분을 소거하는 것을 포함할 수 있다. 비교 연산을 수행하는 것은 비교 연산을 수행하는데 사용된 중간 값들(예를 들면, 임시 값들)이 메모리 셀(270)의 다른 부분에 저장되기 전에 메모리 셀들(270)의 임의의 다른 부분들을 소거하는 것을 더 포함할 수 있다. 메모리 셀들(270)의 부분을 소거하는 것은 메모리 셀(270)의 선택된 부분에 다수의 사전 정의된 비트를 저장하는 것을 포함한다. 사전 정의된 비트는 제로 데이터 값(예를 들면, 0 비트), 하나의 데이터 값(예를 들면, 1 비트), 및/또는 제로, 하나 및/또는 다른 데이터 값들의 임의의 조합을 포함할 수 있다.
비교 연산은 제1 값이 제2 값보다 큰지 여부를 결정하는 것을 포함할 수 있다. 많은 예들에서, 제1 값이 제2 값보다 큰지를 결정하는 것은 제1 값이 더 큰지 여부만을 식별하는데, 그러나 제2 값이 제1 값보다 큰지 및/또는 제1 값이 제2 값과 같은지를 식별하지 않는다. 예를 들어, 제1 값이 제2 값보다 크지 않은 경우, 제2 값은 제1 값보다 클 수 있고 혹은 제1 값은 제2 값과 같을 수 있다.
따라서, 비교 연산은 제2 값이 제1 값보다 큰지 여부를 결정하는 것을 포함할 수 있다. 그러나, 다수의 예에서, 제2 값이 제1 값보다 큰지를 결정하는 것은 제2 값이 더 큰지 여부만을 식별하며, 제1 값이 제2 값보다 큰지 및/또는 제2 값이 제1 값과 같은지를 식별하지 않는다.
따라서, 비교 연산은 또한 제1 값과 제2 값이 동일한지의 여부를 결정하는 것을 포함할 수 있다. 많은 예들에서, 제1 값이 제2 값과 동일한지의 여부를 결정하는 것은 단지 제1 값과 제2 값이 동일한지 여부만을 식별하며, 제1 값이 제2 값보다 큰지 또는 제2 값이 제1 값보다 큰지 여부는 식별하지 않는다.
따라서, 전술한 비교 연산은 계산의 반복으로 분할될 수 있다. 본원에서 사용되는 바와 같이, 계산은 비교 연산을 수행하는 것에 연루된 계산 연산을 기술할 수 있다. 예를 들어, 다른 연산들 중에서, 논리합(예컨대, OR) 연산은 계산일 수 있고 및/또는 가산 연산은 계산일 수 있다. 비교의 반복은 인덱스와 연관될 수 있다. 이와 같이, 인덱스가 증가 또는 감소될 때마다 비교 연산의 새로운 반복이 개시될 수 있다.
바이너리 예에서, 메모리 셀의 제1 부분에 저장된 비트가 메모리 셀의 제2 부분에 저장된 비트와 동일한지를 결정함으로써 제1 값이 제2 값과 동일한지 여부를 결정할 수 있다. 메모리 셀의 제1 부분으로부터의 대응하는 비트는 메모리 셀의 제2 부분으로부터의 대응하는 비트와 비교될 수 있다. 제1 값의 논리 표현으로부터의 비트가 제2 값의 논리 표현으로부터의 대응 비트와 동일하다면, 그리고 제1 값의 논리 표현으로부터의 모든 이전 비트가 제2 값의 논리 표현으로부터 모든 대응하는 비트와 동일하다면, 제1 값이 제2 값과 동일함을 나타내는 다수의 비트가 메모리 셀(270)의 제3 부분(예를 들면, 제3 어드레스 공간)에 저장될 수 있다.
비교 연산은 메모리 셀(270)의 제1 부분 및 메모리 셀(270)의 제2 부분에 저장된 비트 쌍의 수로부터 더 하위의 비트가 상이한지를 결정하기 전에, 메모리 셀(270)의 제1 부분 및 메모리 셀(270)의 제2 부분에 저장된 다수의 비트 쌍으로부터 더 상위의 비트가 상이한지를 결정하는 것을 포함할 수 있다. 예를 들어, 3 비트 값에서, 비교 연산은 제1 값의 논리 표현인 다수의 비트들로부터 메모리 셀(270-0)에 저장된 비트가 제2 값의 논리 표현인 다수의 비트들로부터 메모리 셀(270-3)에 저장된 비트와 상이한지를 결정하기 전에 제1 값의 논리 표현인 다수의 비트들로부터 메모리 셀(270-2)에 저장된 비트가 메모리 제2 값의 논리 표현인 다수의 비트로부터 메모리 셀(270-5)에 저장된 비트와 상이한지를 결정하는 것을 포함할 수 있다. 위에 예에서, 메모리 셀(270-2)에 저장된 비트는 메모리 셀(270-0)에 저장된 비트보다 더 상위일 수 있고 메모리(270-5)에 저장된 비트는 메모리 셀(270-3)에 저장된 비트보다 더 상위일 수 있다.
비트들이 다른지 여부를 결정하는 단계는, 제1 값의 논리 표현으로부터의 비트가 제2 값의 논리 표현으로부터 대응하는 비트와 같지 않다면 제1 값의 논리 표현으로부터의 비트가 제2 값의 논리 표현으로부터의 대응 비트보다 큰지 여부를 결정하는 단계를 포함할 수 있다. 제1 값의 논리 표현으로부터의 비트가 제2 값의 논리 표현으로부터의 대응하는 비트보다 크다면, 제1 값이 제2 값보다 큼을 나타내는 메모리 셀들의 수의 제3 부분(예를 들면, 제3 어드레스 공간)에 다수의 비트들이 저장될 수 있다. 제2 값의 논리 표현으로부터의 대응하는 비트가 제1 값의 논리 표현으로부터의 비트보다 크다면, 제2 값이 제1 값보다 큼을 나타내는 제3 어드레스 공간에 다수의 메모리 셀에 다수의 비트들이 저장될 수 있다.
본 개시의 실시예들은 도 2a에 도시된 특정 감지 회로 구성에 한정되지 않는다. 예를 들어, 상이한 계산 컴포넌트 회로가 본원에 기술된 다수의 실시예에 따라 논리 연산을 수행하는데 사용될 수 있다. 도 2a에 도시되지 않았지만, 다수의 실시예에서, 제어 회로는 어레이(230), 감지 증폭기(206) 및/또는 계산 컴포넌트(231)에 결합될 수 있다. 이러한 제어 회로는 예를 들면 어레이 및 감지 회로와 동일한 칩 상에 그리고/또는 외부 프로세서와 같은 외부 처리 자원 상에 구현될 수 있으며, 본원에 설명된 대로 논리 연산을 수행하기 위해서 어레이 및 감지 회로에 대응하는 다양한 신호들을 활성화/비활성화하는 것을 제어할 수 있다. 또한, 단일의 한쌍의 보수 감지 라인(205-0/205-1)이 도 2a에 도시되어 있지만, 어레이(230)는 다수의 보수 감지 라인 쌍을 포함할 수 있다.
메모리에서 비교 연산을 수행하기 위한 요약을 제공하는 예시적인 의사 코드는 다음과 같이 주어진다:
tmp = getTemp(0);
tmpset = getTmp(1);
ClearOpenRow;
WriteRow(tmpset);
for (i = nbits-1; i >= 0; i--){
ReadRow(srcA + i);
XorRow(srcB + i);
XorRow(tmpset);
WriteRow(tmp);
OrRow(tmpset);
WriteRow(tmpset);
ReadRow(srcA+i);
AndRow(tmp);
OrRow(dest);
WriteRow(dest);
ReadRow(srcB + i);
AndRow(tmp);
OrRow(dest + 1);
WriteRow(dest + 1);
If (! Acc_contains_any_zeros()){
break;
}
}
다수의 실시예에서, 비교 연산은 비교 연산을 수행하는 데 사용될 수 있는 다른 동작 중에서, 소거 동작, 기록 동작, 판독 동작, WIRED OR 연산, 가산 연산, 감산 연산 및/또는 반전 연산을 사용하여 수행될 수 있다. 위의 연산은 부울 연산과 비-부울 연산을 사용하여 수행할 수 있다. 다수의 실시예에서, 부울 및 비-불 연산은 논리 연산(예를 들면, NAND, AND, NOR, XOR, OR 등)을 사용하여 수행될 수 있다. 예를 들어, 비교 연산을 수행하는 것은 비교 연산을 수행하는데 사용될 수 있는 다른 연산들 중에서, 가산 연산, 감산 연산, XOR 연산, OR 연산, AND 연산 및/또는 NOT 연산을 수행하는 것을 포함할 수 있다. 가산 연산을 수행하는 것은 가산 연산을 수행하는데 사용될 수 있는 다른 연산 중에서, OR 연산, NAND 연산 및/또는 AND 연산을 수행하는 것을 포함할 수 있다. 감산 연산은 감산 연산을 수행하는데 사용될 수 있는 다른 연산 중에서, NAND 연산, OR 연산, AND 연산 및/또는 XOR 연산을 수행하는 것을 포함할 수 있다. 계산 컴포넌트(231)와 관련하여 NAND, AND, NOR, XOR 및 OR 논리 연산을 수행하는 예가 도 2b, 도 2ca, 도 2cb, 도 2da, 도 2db 및 도 2e에 주어진다.
비교 연산은 tmp 값 및 tmpset 값을 생성하는 것을 포함할 수 있다(예를 들면, "tmp = getTemp(0)" 및 "tmpset = getTmp(1)"). tmp 값과 tmpset 값은 임시 저장으로서 사용되는 값일 수 있다.
tmpset 값은 제1 값이 제2 값과 동일하지 않은 것으로 결정되었는지의 여부를 나타낸다. 즉, tmpset 값은 제1 값과 제2 값 사이의 차이가 식별되었는지 여부를 나타낸다.
tmp 값은 제1 값으로부터 다음 최상위 비트가 제2 값으로부터 대응하는 다음 최상위 비트와 동일하지 않은지 여부를 나타낸다.
tmp 값의 논리 표현인 비트는 제1 값 및 제2 값을 나타내는 연관된 비트들 중 임의의 비트 사이에 차이가 있다면 일(예를 들면, "1")에 설정될 수 있고, 혹은 제1 값 및 제2 값을 나타내는 연관된 비트들 간에 차이가 식별되지 않았거나, 제1 값 및 제2 값을 나타내는 연관된 비트들 간의 차이가 없다거나, 및/또는 연관된 비트들 간의 차이가 비교 연산에 기여하지 않는다면, 제로(예컨대, "0")로 설정될 수 있다. tmpset 값은 제1 값과 제2 값 간에 차이가 있으면 일(예를 들면, "1")로 설정하거나 제1 값과 제2 값 간에 차이가 식별되지 않았다면 제로(예를 들면, "0")으로 설정할 수 있다.
다수의 예들에서, tmp 값 및/또는 tmpset 값은 단일 메모리 셀 내에 단일 비트로서 저장될 수 있거나 또는 tmp 값 및/또는 tmpset 값은 다수의 메모리 셀에 다수의 비트를 사용하여 저장될 수 있다. 많은 예에서 tmp 값과 tmpset 값은 단일 값 및/또는 별개의 값으로서 나타낼 수 있다. 도 3a 내지도 3m에 도시된 예에서 사용된 바와 같이, tmp 값은 메모리 셀에 저장된 단일 비트를 사용하여 논리적으로 표현되는 반면, tmpset 값은 다른 메모리 셀에 저장된 다른 단일 비트를 사용하여 논리적으로 표현된다.
비교 연산은 메모리 어레이(230)에 결합된 계산 컴포넌트(231)에 있는 계산 컴포넌트(231) 및/또는 누산기를 소거(예를 들면, ClearOpenRow)하는 것을 포함할 수 있다. 비교 연산은 또한 값이 메모리 셀에 저장되기 전에 다수의 메모리 셀을 소거하는 것을 포함할 수 있다. 소거된 계산 컴포넌트(231)는 메모리 셀을 소거하는데 사용될 수 있다. 본원에서 사용되는 바와 같이, 메모리 셀을 소거하는 것은 미리 정의된 비트를 메모리 셀에 저장하는 것을 포함할 수 있다. 예를 들어, 비교 연산은 소거될 수 있는 다른 값 중에서, tmpset 값 및/또는 결과 값을 소거하는 것을 포함할 수 있다. 예를 들면, 값의 논리 표현을 저장하는 메모리 셀에 제로(예를 들면, "0") 비트를 저장함으로써 값을 소거할 수 있다.
본원에서 사용되는 바와 같이, 결과 값은 목적지 값이라고도 지칭된다. 제1 값은 위에 의사 코드에서 언급된 바와 같이 srcA 값이라 지칭될 수도 있다. 또한, 제2 값은 위에 의사 코드에서 언급된 바와 같이 srcB 값이라 지칭될 수 있다. 제1 값 및 제2 값은 다수의 비트(예를 들면, 다른 비트 수 중에서도, 1, 2, 4, 8, 16, 32, 또는 64 비트)를 사용하여 표현될 수 있다. 예를 들어, 제1 값 및 제2 값 각각은 3개의 메모리 셀에 저장될 수 있는 3 비트에 의해 논리적으로 표현될 수 있다.
비교 연산은 FOR 루프를 사용함으로써 다수의 메모리 셀(270)에 저장된 각 비트 인덱스에 대한 다수의 호출을 수행할 수 있다. 본원에서 사용되는 바와 같이, 다수의 메모리 셀(270)에 저장된 각 비트 인덱스에 대해 수행되는 호출의 수는 비교 연산의 각 반복에 대한 참조이다. 예를 들어, 다수의 호출은 제1 값의 논리 표현인 비트-벡터가 3 비트를 포함하는 3 번의 반복에서 3번 구현할 수 있다. FOR 루프(예를 들면, for(i = nbits-1; i>=0; i--))는 인덱스를 최상위 인덱스(예를 들면, i = nbits-1)로 설정하는 것을 포함할 수 있다. 예를 들어, 제1 값 및 제2 값이 각각의 3 개의 비트-벡터를 사용하여 각각 표현되면, 인덱스는 2로 설정될 수 있다(예를 들면, i = 3-1). 인덱스는 호출 수가 구현될 때마다 1씩 감소될 수 있다(예를 들면, i--). 즉, FOR 루프의 반복이 완료될 때마다 인덱스는 1씩 감소될 수 있다. 비교 연산은 인덱스가 0보다 작을 때(예를 들면, i<0) 종료될 수 있다. 즉, 인덱스가 0보다 크거나 같은 동안(예를 들면, i> = 0) 비교 연산은 계속될 수 있다.
비교 연산을 수행하는 것은 제1 값이 제2 값보다 큰지 여부, 제2 값이 제1 값보다 큰지 여부, 및/또는 제1 값이 제2 값과 같은지 여부를 결정하기 위해 제1 값 및 제2 값으로부터의 관련 비트들을 비교하는 것을 포함할 수 있다. 예를 들어, 메모리 셀들의 수의 제1 부분에 저장된 비트 값들이 메모리 셀들의 수의 제2 부분에 저장된 비트 값과 동일한 경우, 제1 값은 제2 값과 동일할 수 있다. 즉, 메모리 셀들의 수의 제1 부분으로부터의 대응하는 비트들은 메모리 셀들의 수의 제2 부분으로부터의 대응하는 비트와 비교될 수 있다. 예를 들어, "1"비트는 "0"비트보다 더 큰 것으로서 취급될 수 있다. "0"비트는 "0"비트와 동일한 것으로서 취급될 수 있다.
제1 값 및 제2 값으로부터의 대응하는 비트들은 동일한 인덱스와 연관된 비트들을 포함할 수 있다. 예를 들어, 더 높은 인덱스를 갖는 비트는 더 낮은 인덱스를 갖는 비트가 비교되기 전에 비교될 수 있다. 즉, 제2 인덱스를 가진 비트들이 동일한지를 결정하기 전에 제1 값 및 제2 값으로부터 제1 인덱스를 가진 비트들이 동일하지가 결정될 수 있다. 다수의 예에서 제1 인덱스는 제2 인덱스보다 더 상위의 인덱스일 수 있다.
각각의 비트 인덱스에 대해 수행되는 다수의 호출은 메모리 어레이로부터 제1 값을 판독하는 것을 포함할 수 있다. 메모리로부터 값을 판독하는 것은 값의 논리 표현을 포함하는 다수의 메모리 셀(270)에 저장된 각각의 비트를 감지 증폭기(206)에 래칭하는 것을 포함할 수 있다. 다수의 메모리 셀(270)에 저장된 비트는 최상위부터 최하위까지 순서대로 래치될 수 있다. 다수의 예에서, 다음 최상위 비트는 비교 연산과 관련된 다수의 반복으로부터 다음 반복을 위해 비교 및 및/또는 래치되지 않은 비트일 수 있다. 예를 들어, 비교 연산의 제1 반복 동안, 판독 동작(예를 들면, ReadRow(srcA+i))은 논리를 제1 값의 논리 표현을 저장하는 다수의 메모리 셀에 저장된 비트-벡터로부터 제3 인덱스를 갖는 비트를 래치할 수 있다. 비교 연산의 제2 반복 동안, 판독 동작(예를 들면, "ReadRow(scrA+i))" 호출은 제2 인덱스를 가진 비트를 래치할 수 있다. 비교 연산의 제3 반복 동안, 판독 동작(예를 들면, ReadRow(scrA+i))은 제1 인덱스를 가닌 비트를 래치할 수 있다.
제1 값 및 제2 값과 관련된 각각의 비트 인덱스에 대해 수행되는 다수의 호출은 입력으로서 제1 값으로부터 다음 최상위 비트 및 제2 값으로부터 다음 최상위 비트를 사용하여 XOR 연산(예를 들면, XorRow(srcB+i))을 수행하는 것을 포함할 수 있다. 상기 XOR 연산(예를 들면, XorRow(srcB+i))은 제1 값을 제2 값과 비교하여 제1 값이 제2 값과 동일한지를 결정할 수 있다. 예를 들어, 비교 연산의 제1 반복 동안, 제1 값을 저장하는 메모리 셀들의 수로부터의 제3 인덱스를 갖는 다음 최상위 비트는 다음 최상위 비트를 제2 값을 저장하는 다수의 메모리 셀로부터의 제3 인덱스와 비교하여 제3 인덱싱된 비트가 서로 동일한지를 결정할 수 있다.
각 비트 인덱스에 대해 수행되는 다수의 호출은 이전 XOR 연산(예를 들면, XorRow(srcB+i)의 결과 및 대응하는 tmpset 값을 입력으로 사용하여 XOR 연산(예를 들면, XorRow(tmpset))를 수행하여 비교 연산에 대한 해가 이미 식별되었는지 여부를 결정하는 것을 포함할 수 있다. 비교 연산에 대한 해는 비교 연산이 제1 값을 제2 값보다 큰 것으로서, 제2 값을 제1 값보다 큰 것으로서, 제1 값이 제2 값과 동일한 것으로서 식별할 때 식별될 수 있다.
각 비트 인덱스에 대해 수행되는 다수의 호출은 이전 XOR 연산(예를 들면, XorRow(tmpset))의 결과를 tmp 값의 논리 표현을 저장하는 메모리 셀(270)에 저장하기 위한 기록 동작(예를 들면, WriteRow(tmp)를 수행하는 것을 포함할 수 있다. 제1 값으로부터 다음 최상위 비트가 제2 값으로부터 다음 최상위 비트와 동일하지 않으면, 기록 동작(예를 들면, WriteRow(tmp))은 연관된 메모리 셀에 일(예를 들면, "1")을 저장할 수 있다 .
각 비트 인덱스에 대해 수행되는 다수의 호출은 입력으로서 tmp 값 및 tmpset 값을 사용하여 OR 연산(예를 들면, OrRow(tmpset))을 수행하는 것을 포함할 수 있다. 호출의 수는 tmpset 값의 논리 표현을 저장하는 메모리 셀(270)에 OR 연산의 결과(예를 들면, OrRow(tmpset))를 저장하기 위한 기록 동작(예를 들면, WriteRow(tmpset))을 포함할 수 있다. 이전의 OR 연산(예를 들면, OrRow(tmpset)) 및 기록 동작(예를 들면, WriteRow(tmpset))은 tmpset 값을 업데이트하여 비교 연산에 대한 해가 비교 연산의 현재 반복에서 식별될 것인지 여부를 식별할 수 있다.
각 비트 인덱스에 대해 수행되는 다수의 호출은 제1 값의 다음 최상위 비트와 연관된 메모리 셀에 저장된 값을 래치하기 위한 판독 동작(예를 들면, ReadRow(srcA+i))을 포함할 수 있다. 다수의 호출은 제1 값이 제2 값보다 큰지를 결정하기 위해 제1 값으로부터의 다음 최상위 비트 및 tmp 값을 입력으로서 사용하는 AND 연산(예를 들면, AndRow(tmp))을 포함할 수 있다. 각 비트 인덱스에 대해 수행된 다수의 호출은 이전 AND 연산(예를 들면, AndRow(tmp))의 결과 및 제1 값과 연관되고 결과 값을 저장하는 메모리 셀에 저장된 비트를 입력으로서 사용하는 OR 연산(예를 들면, OrRow(dest))을 포함할 수 있다. 이전의 OR 연산(예를 들면, OrRow(dest))의 결과는 결과 값을 저장하고 제1 값과 관련된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest)).
각각의 비트 인덱스에 대해 수행되는 다수의 호출은 또한 제2 값의 다음 최상위 비트와 연관된 메모리 셀에 저장된 값을 래치하기 위한 판독 동작(예를 들면, ReadRow(srcB+i))을 포함할 수 있다. 각 비트 인덱스에 대해 수행되는 다수의 호출은 제2 값이 제1 값보다 큰지를 결정하기 위해 제2 값으로부터 다음 최상위 비트와 tmp 값을 입력으로서 사용하는 AND 연산(예를 들면, AndRow(tmp))을 포함할 수 있다. 각 비트 인덱스에 대해 수행되는 다수의 호출은 이전 AND 연산(예를 들면, AndRow(tmp))의 결과 및 제2 값과 관련되고 결과 값을 저장하는 메모리 셀에 저장된 비트를 입력으로서 사용하는 OR 연산(예를 들면, OrRow(dest+1)을 포함할 수 있다. 이전의 OR 연산(예를 들면, OrRow(dest+1))의 결과는 제2 값과 관련되고 결과 값을 저장하는 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest+1)).
각각의 비트 인덱스에 대해 수행되는 다수의 호출은 FOR 루프를 빠져 나오기위한 브레이크 동작(예를 들면, 브레이크)을 포함할 수 있다. 브레이크 동작은 비교 연산을 종결하기 위해 WIRED OR 연산(예를 들면, !ACC_contains_any_zeroes())의 결과에 기초하여 FOR 루프를 빠져 나올 수 있다. 본원에서 사용되는 바와 같이, NOT 연산은 위의 의사 코드에서 "!" 기호로 표현된다. 본원에서 사용되는 바와 같이, WIRED OR 연산은 다수의 제1 값 및 다수의 제2 값에 대한 다수의 비교 연산이 종결되었는지 여부를 결정하는 것을 포함할 수 있다. WIRED OR 연산은 도 2e에서 더욱 설명된다. 다수의 제1 값 및 제2 값에 대한 비교 연산이 종결되었는지의 여부를 결정하는 것은 각각의 비교 연산과 연관된 tmpset 값에 기초할 수 있다. 예를 들어, 모든 tmpset 값이 일(예를 들면, "1")과 같다면, 모든 비교 연산이 종료되었다. 비교 연산과 연관된 tmpset 값은 제1 값이 제2 값보다 크거나 제2 값이 제1 값보다 크다고 결정되어졌을 때 일(예를 들면, "1")과 같을 수 있다.
도 2b는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도(285-1)를 도시한다. 타이밍도(285-1)는 논리 연산의 제1 연산 위상(phase)(예를 들면, R-입력 논리 연산)을 수행하는 것과 관련된 신호(예를 들면, 전압 신호)를 도시한다. 도 2b에서 설명된 제1 연산 위상은 예를 들어, AND, NAND, OR 또는 NOR 연산의 제1 연산 위상일 수 있다. 이하 더 설명하는 바와 같이, 도 2b에 도시된 연산 위상을 수행하는 것은 이전의 처리 접근법보다 훨씬 적은 에너지(예를 들면, 약 절반)을 소비하는 것을 수반할 수 있는데, 이는 계산 기능을 수행하기 위해 전압 레일 간에(예를 들면, 전원과 접지 사이) 완전한 스윙을 제공하는 것을 수반할 수 있다.
도 2b에 도시된 예에서, 보수 논리 값(예를 들면, "1" 및 "0")에 대응하는 전압 레일은 서플라이 전압(supply voltage)(274)(VDD) 및 접지 전압(272)(Gnd)이다. 논리 연산을 수행하기 전에, 보수 감지 라인(D, D_)이 등화 전압 225(VDD/2)에서 함께 쇼트되도록 등화가 일어날 수 있다. 등화는 도 3과 관련하여 이하 더욱 설명된다.
시간(t1)에서, 등화 신호(226)는 비활성화되고, 선택된 행이 활성화된다(예를 들면, 데이터 값이 감지되고 제1 입력으로서 사용되는 메모리 셀에 대응하는 행). 신호(204-0)는 선택된 행(예컨대, 행(204-0))에 인가된 전압 신호를 나타낸다. 행 신호(204-0)가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들면, 202)의 임계 전압(Vt)에 도달할 때, 액세스 트랜지스터는 턴 온 되어 감지 라인(D)을 선택된 메모리 셀에(예를 들면, 셀이 1T1C DRAM 셀이면 커패시터(203)에) 결합하는데, 이는 시간(t2)와 시간(t3) 사이에서 감지 라인(D, D_) 사이에 차동 전압 신호(예를 들면, 각각 신호(205-0, 205-1)로 나타낸 바와 같이)를 생성한다. 선택된 셀의 전압은 신호(203)에 의해 표현된다. 에너지의 보존에 기인하여, D와 D_ 사이의 차동 신호를 생성하는 것은(예를 들면, 셀을 감지 라인(D)에 결합함으로써), 행 신호(204)를 비활성화/비활성화하는 것에 연관된 에너지가 행에 결합된 다수의 메모리 셀들에 걸쳐 상환될 수 있기 때문에, 에너지를 크게 소비하지 않을 수 있다.
시간(t3)에서, 감지 증폭기(예컨대, 206)가 활성화되는데(예를 들어, 포지티브 제어 신호(290)(도 5에 도시된 ACT(590)에 대응하는)는 하이가 되고, 네거티브 제어 신호(228)(예를 들어, 도 5에 도시된 RnIF(528)에 대응하는)는 로우(low)가 된다), 이는 D와 D_ 사이의 차동 신호를 증폭하여, 논리 1에 대응하는 전압(예를 들면, VDD) 또는 논리 0에 대응하는 전압(예를 들면, 접지)을 감지 라인(D) 상에 있게 하여(그리고 다른 전압은 보수 감지 라인(D_) 상에 있게 하여), 감지된 데이터 값이 감지 증폭기(206)의 1차 래치에 저장되게 한다. 이 연산에서 주 에너지 소비는 감지 라인(D)(205-0)를 등화 전압(VDD/2)에서 레일 전압(VDD)까지 충전할 때 일어난다.
시간(t4)에서, 패스 트랜지스터(207-1, 207-2)는 도 2ca 및 도 2cb에 도시된 바와 같이 활성화된다(예를 들면, 각각 제어 라인(211-1, 211-2)에 인가된 각각의 Passd 및 Passdb 제어 신호를 통해). 제어 신호(211-1, 211-2)는 도 2b에 도시된 바와 같이 집합적으로 제어 신호(211)라 지칭된다. 본원에서 사용되는 바와 같이, Passd 및 Passdb와 같은 다양한 제어 신호는 신호가 인가되는 제어 라인을 참조함으로써 참조될 수 있다. 예를 들어, Passd 신호는 도 2ca에서 제어 신호(211-1)라 지칭될 수 있다. 시간(t5)에서, 누산기 제어 신호(Accumb, Accum)는 각각의 제어 라인(212-1, 212-2)을 통해 활성화된다. 후술하는 바와 같이, 누산기 제어 신호(212-1, 212-2)는 후속 연산 위상 동안 활성화된 채로 있을 수 있다. 이와 같이, 이 예에서, 제어 신호(212-1, 212-2)를 활성화하는 것은 계산 컴포넌트(231)의 2차 래치(예를 들면, 누산기)가 활성화한다. 감지 증폭기(206)에 저장된 감지된 데이터 값은 2차 래치에 전송된다(예를 들면 카피된다).
시간(t6)에서, 패스 트랜지스터(207-1, 207-2)는 비활성화되는데(예를 들면, 턴 오프), 그러나, 누산기 제어 신호(212-1, 212-2)는 활성화된 채로 있기 때문에, 누산된 결과는 2차 래치(예를 들면, 누산기)에 저장(예를 들면, 래치)된다. 시간(t7)에서, 행 신호(204-0)는 비활성화되고, 어레이 감지 증폭기는 시간(t8)에서 비활성화된다(예를 들면, 감지 증폭기 제어 신호(228, 290)가 비활성화된다).
시간(t9)에서, 감지 라인 전압 신호(205-0, 205-1)가 이들의 각각의 레일 값으로부터 등화 전압(225)(VDD/2)으로 이동하는 것으로서 도시된 바와 같이, 감지 라인(D, D_)는 등화를 이룬다(예를 들면, 등화 신호(226)가 활성화된다). 등화는 에너지 보존 법칙으로 인해 약간의 에너지를 소비한다. 등화는 예에서는 VDD/2인 등화 전압에서 보수 감지 라인(D, D_)을 함께 단락시키는 것을 포함할 수 있다. 등화는, 예를 들면, 메모리 셀 감지 동작 이전에 일어날 수 있다.
도 2ca 및 도 2cb는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도(285-2, 285-3)를 각각 도시한다. 타이밍도(285-2, 285-3)는 논리 연산(예를 들면, R이 가변 개수의 입력인 R-입력 논리 연산)의 다수의 중간 연산 위상을 수행하는 것과 관련된 신호(예를 들면, 전압 신호)를 도시한다. 예를 들어, 타이밍도(285-2)는 R-입력 NAND 연산 또는 R-입력 AND 연산의 다수의 중간 연산 위상들에 대응하고, 타이밍도(285-3)은 R-입력 NOR 연산 또는 R-입력 OR 연산의 다수의 중간 연산 위상들에 대응한다. 예를 들어, AND 또는 NAND 연산을 수행하는 것은 도 2b에서 설명된 것과 같은 초기 연산 위상에 후속하여 한번 이상 도 2ca에 도시된 연산 위상을 수행하는 것을 포함할 수 있다. 유사하게, OR 또는 NOR 연산을 수행하는 것은 도 2b에 기술된 바와 같은 초기 연산 위상에 후속하여 한번 이상 도 2cb에 도시된 연산 위상을 수행하는 것을 포함할 수 있다.
타이밍도(285-2, 285-3)에 도시된 바와 같이, 시간(t1)에서, 등화는 비활성화되고(예를 들면, 등화 신호(226)가 비활성화된다), 선택된 행이 활성화된다(예를 들면, 데이터 값이 감지되어 제2 입력, 제3 입력 등과 같은 입력으로서 사용되는 메모리 셀에 대응하는 행). 신호(204-1)는 선택된 행(예컨대, 로우(204-1))에 인가된 전압 신호를 나타낸다. 행 신호(204-1)가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들면, 202)의 임계 전압(Vt)에 도달할 때, 액세스 트랜지스터는 턴 온 되어 감지 라인(D)을 선택된 메모리 셀에(예를 들면, 셀이 1T1C DRAM 셀인 경우 커패시터(203)에) 결합하는데, 이는 시간(t2)와 시간(t3) 사이에서 감지 라인(D, D_) 사이에(예를 들면, 각각 신호(205-0, 205-1)로 표시된 바와 같이) 차동 전압 신호를 생성한다. 선택된 셀의 전압은 신호(203)에 의해 표현된다. 에너지의 보존에 기인하여, D와 D_ 사이의 차동 신호를 생성하는 것은(예를 들면, 셀을 감지 라인(D)에 결합함으로써), 행 신호(204)를 활성화/비활성화시키는 것에 연관된 에너지가 행에 결합된 다수의 메모리 셀에 걸쳐 상환될 수 있기 때문에, 에너지를 소비하지 않을 수 있다.
시간(t3)에서, 감지 증폭기(예컨대, 206)가 활성화되는데(예를 들어, 포지티브 제어 신호(290)는 하이가 되고, 네거티브 제어 신호(228)는 로우가 된다), 이는 D와 D_ 사이의 차동 신호를 증폭하여, 논리 1에 대응하는 전압(예를 들면, VDD) 또는 논리 0에 대응하는 전압(예를 들면, 접지)을 감지 라인(D) 상에 있게 하여(그리고 다른 전압은 보수 감지 라인(D_) 상에 있게 하여), 감지된 데이터 값이 감지 증폭기(206)의 1차 래치에 저장되게 한다. 이 연산에서 주 에너지 소비는 감지 라인(D)(205-0)를 등화 전압(VDD/2)에서 레일 전압(VDD)까지 충전할 때 일어난다.
타이밍도(285-2, 285-3)에 도시된 바와 같이, 시간(t4)에서(예를 들면, 선택된 셀이 감지된 후), 특정 논리 연산에 따라, 제어 신호(211-1)(Passd) 및 제어 신호(211-2)(Passdb) 중 하나만이 활성화된다(예를 들면, 도 2a의 패스 트랜지스터(207-1, 207-2) 중 하나만이 인에이블 됨). 예를 들어, 도 2ca의 타이밍도(285-2)는 NAND 또는 AND 연산의 중간 위상에 대응하기 때문에, 제어 신호(211-1)는 시간(t4)에서 활성화되고 제어 신호(211-2)는 비활성화된 채로 있는다. 역으로, 도 2cb의 타이밍도(285-3)는 NOR 또는 OR 연산의 중간 위상에 대응하기 때문에, 제어 신호(211-2)는 시간(t4)에서 활성화되고 제어 신호(211-1)는 비활성화된 채로 있는다. 도 2a에서 상기한 바로부터, 누산기 제어 신호(212-1(Accumb), 212-2(Accum))은 도 2b에 설명된 초기 연산 위상 동안 활성화되었고 이들은 중간 연산 위상(들) 동안 활성화된 채로 있음을 상기한다.
누산기가 이전에 인에이블되었기 때문에, Passd만 활성화하는 것은(예를 들면, 도 2ca에서 211-1), 전압 신호(205-1)에 대응하는 데이터 값을 누산하게 된다. 유사하게, Passdb(예를 들면,도 2cb에서 211-2)만을 활성화시키는 것은 전압 신호(205-2)에 대응하는 데이터 값을 누산하게 된다. 예를 들어, 패스(211-1)만이 활성화되는 예시적인 AND/NAND 연산(예를 들면, 도 2ca의 타이밍도(285-2))에서, 선택된 메모리 셀(예를 들면, 이 예에서 Row1 메모리 셀)에 저장된 데이터 값이 논리 0 인 경우, 2차 래치(예를 들면, 도 2a에서 290)와 연관된 누산된 값은 로우로 어서트되어 2차 래치가 논리 0을 저장하게 된다. Row1 메모리 셀에 저장된 데이터 값이 논리 0이 아닌 경우, 2차 래치는 저장된 Row0 데이터 값(예를 들면, 논리 1 또는 논리 0)을 보유한다. 이와 같이, 이 AND/NAND 연산 예에서, 2차 래치는 제로(0) 누산기로서 작용하고 있다.
유사하게, Passdb만이 활성화되는 예시적인 OR/NOR 연산(예컨대, 도 2cb의 타이밍도(285-3))에서, 선택된 메모리 셀(예를 들면, 이 예에서 Row1 메모리 셀)이 논리 1인 경우, 2차 래치와 연관된 누산된 값은 하이로 어서트되어 2차 래치가 논리 1을 저장하게 된다. Row1 메모리 셀에 저장된 데이터 값이 논리 1이 아닌 경우, 2차 래치는 이의 저장된 Row0 데이터 값(예를 들면, 논리 1 또는 논리 0)을 유지한다. 이에 따라, 이 OR/NOR 연산 예에서, D_ 상의 전압 신호(205-1)가 누산기의 실제 데이터 값을 설정하고 있기 때문에, 2차 래치는 일(1) 누산기로서 효과적으로 작용하고 있다.
도 2ca 및 도 2cb에 도시된 것과 같은 중간 연산 위상의 결말에서, Passd 신호(예를 들면, AND/NAND를 위한) 또는 Passdb 신호(예를 들면, OR/NOR을 위한)는 비활성화되고(예를 들면, 시간(t5)에서), 선택된 행은 비활성화되고(예를 들면, 시간(t6)에서), 감지 증폭기(예를 들면,도 2a에서 206)가 비활성화되고(예를 들면, 시간(t7)에서), 등화가 일어난다(예를 들면, 시간(t8)에서). 도 2ca 또는 도 2cb에 도시된 것과 같은 중간 연산 위상은 다수의 추가 행으로부터 결과들을 누산하기 위해 반복될 수 있다. 일례로서, 타이밍도(285-2 또는 285-3)의 시퀀스는 Row2 메모리 셀에 대해 후속(예를 들면, 제2) 시간에, Row3 메모리 셀에 대해 후속(예를 들면, 제3) 시간에, 등등에서 수행될 수 있다. 예를 들어, 10 입력 NOR 연산에 있어서, 도 2cb에 도시된 중간 위상이 9번 일어나 10 입력 논리 연산의 9개 입력을 제공할 수 있으며, 제10 입력은 초기 연산 위상에서 결정된다(예를 들면, 도 2b에 기술된 바와 같이).
도 2da 및 도 2db는 본 개시의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도(285-4, 285-5)를 각각 도시한다. 타이밍도(285-4, 285-5)은 논리 연산(예를 들면, R-입력 논리 연산)의 최종 연산 위상을 수행하는 것과 관련된 신호(예를 들면, 전압 신호)를 도시한다. 예를 들어, 도 2db의 타이밍도(285-4)은 R-입력 NAND 연산 또는 R-입력 NOR 연산의 마지막 연산 위상에 대응하고, 도 2db의 타이밍도(285-5)은 R-입력 AND 연산 또는 R-입력 OR 연산의 마지막 연산 위상에 대응한다. 예를 들어, NAND 연산을 수행하는 것은 도 2ca과 관련하여 설명된 중간 연산 위상의 다수의 반복에 후속하여 도 2da에 도시된 연산 위상을 수행하는 것을 포함할 수 있으며, NOR 연산을 수행하는 것은 도 2cb와 관련하여 설명된 중간 연산 위상의 다수의 반복에 후속하여도 도 2da에 도시된 연산 위상을 수행하는 것을 포함할 수 있으며, AND 연산을 수행하는 것은 도 2ca과 관련하여 기술된 중간 연산 위상의 다수의 반복에 후속하여 도 2db에 도시된 연산 위상을 수행하는 것을 포함할 수 있고, OR 연산을 수행하는 것은 도 2cb와 관련하여 설명된 중간 연산 위상의 다수의 반복에 후속하여도 도 2db에 도시된 연산 위상을 수행하는 것을 포함할 수 있다. 아래에 나타낸 표1은 본원에 설명된 다수의 실시예에 따라 다수의 R-입력 논리 연산을 수행하는 것과 관련된 연산 위상의 시퀀스에 대응하는 도면을 나타낸다.
연산 도 2b 도 2ca 도 2cb 도 2da 도 2db
AND 제1 위상 R-1 반복 마지막 위상
NAND 제1 위상 R-1 반복 마지막 위상
OR 제1 위상 R-1 반복 마지막 위상
NOR 제1 위상 R-1 반복 마지막 위상
NAND 연산은, 예를 들어, AND 연산을 위한 R-1 반복의 결과를 감지 증폭기에 저장하고, 결과를 저장하기 위해 마지막 연산 위상을 수행하기 전에 감지 증폭기를 반전시킴으로써 구현될 수 있다(이하에 설명됨). NOR 연산은 예를 들어, OR 연산에 대한 R-1 반복 결과를 감지 증폭기에 저장하고, 이어 결과를 저장하기 위해 마지막 연산 위상을 수행하기 전에 감지 증폭기를 반전함으로써 구현할 수 있다(이하에 설명됨).
도 2da 및 도 2db의 마지막 연산 위상은 R-입력 논리 연산의 결과를 어레이(예를 들면, 도 2a의 어레이(230))의 한 행에 저장하는 것과 관련하여 설명된다. 그러나, 상술한 바와 같이, 다수의 실시예에서, 결과는 다시 어레이로가 아니라 적절한 위치(예를 들면, I/O 라인을 통해, 제어기 및/또는 호스트 프로세서와 연관된 외부 레지스터, 혹은 다른 메모리 디바이스의 메모리 어레이, 등에)에 저장될 수 있다.
타이밍도(285-4, 285-5)에 도시된 바와 같이, 시간(t1)에서, 등화는 감지 라인(D, D_)이 플로팅(floating)되도록 비활성화된다(예를 들면, 등화 신호(226)가 비활성화된다). 시간(t2)에서, 어떤 논리 연산이 수행되는지에 따라, InvD 신호(213) 또는 Passd 및 Passdb 신호(211)가 활성화된다. 이 예에서, InvD 신호(213)는 NAND 또는 NOR 연산(도 2da 참조)을 위해 활성화되고, Passd 및 Passdb 신호(211)는 AND 또는 OR 연산을 위해 활성화된다(도 2db 참조).
시간(t2)에서 InvD 신호(213)를 활성화하는 것은(예를 들면, NAND 또는 NOR 연산과 관련하여) 도 2a의 트랜지스터(214-1/214-2)를 인에이블하고, 감지 라인(D) 또는 감지 라인(D_)이 로우로 되어 결과적으로 도 2a에 2차 래치(290)에 저장된 데이터 값을 반전시키게 된다. 이와 같이, 활성화 신호(213)는 누산된 출력을 반전시킨다. 따라서, NAND 연산에 있어서, 이전 연산 위상들에서 감지된 메모리 셀들 중 어느 하나(예를 들면, 초기 연산 위상 및 하나 이상의 중간 연산 위상)가 논리 0을 저장하면(예를 들면, NAND 연산의 R-입력 중 어느 것이 논리 0이었다면), 감지 라인(D_)은 논리 0(예를 들면, 접지 전압)에 대응하는 전압을 캐리할 것이고, 감지 라인(D)은 논리 1(예를 들면, VDD와 같은 서플라이 전압)에 대응하는 전압을 캐리할 것이다. 이 NAND 예에서, 이전 연산 위상에서 감지된 모든 메모리 셀이 논리 1을 저장하였다면(예를 들면, NAND 연산의 모든 R-입력이 논리 1이었다면), 감지 라인(D_)은 논리 1에 대응하는 전압을 캐리할 것이며, 감지 라인(D)는 논리 0에 대응하는 전압을 캐리할 것이다. 시간(t3)에서, 감지 증폭기(206)의 1차 래치가 활성화되고(예를 들면, 감지 증폭기가 파이어됨), D 및 D_를 적절한 레일까지 구동하고, 감지 라인(D)은 이제 이전 연산 위상들 동안 감지된 메모리 셀들로부터 결정된 각각의 입력 데이터 값들의 NAND된 결과를 캐리한다. 따라서, 입력 데이터 값의 어느 것이든 논리 0이면 감지 라인(D)은 VDD에 있게 될 것이도, 모든 입력 데이터 값이 논리 1이라면 감지 라인(D)은 접지에 있게 될 것이다.
NOR 연산에 있어서, 이전 연산 위상(예를 들면, 초기 연산 위상 및 하나 이상의 중간 연산 위상)에서 감지된 메모리 셀 중 임의의 하나가 논리 1을 저장하였다면(예를 들면, NOR 연산의 R-입력 중 어느 것이 논리 1이었다면), 감지 라인(D_)은 논리 1(예컨대, VDD)에 대응하는 전압을 캐리할 것이고 감지 라인(D)은 논리 0(예컨대, 접지)에 대응하는 전압을 캐리할 것이다. 이 NOR 예에서, 이전 연산 위상에서 감지된 모든 메모리 셀이 논리 0을 저장하였다면(예를 들면, NOR 연산의 R-입력 모두가 논리 0이었다면), 감지 라인(D_)은 논리 0에 대응하는 전압을 캐리할 것이고 감지 라인(D)는 논리 1에 대응하는 전압을 캐리할 것이다. 시간(t3)에서, 감지 증폭기(206)의 1차 래치가 활성화되고 감지 라인(D)은 이제 이전 연산 위상 동안 감지된 메모리 셀로부터 결정된 각각의 입력 데이터 값의 NOR된 결과를 내포한다. 입력 데이터 값의 어느 것이든 논리 1이면 감지 라인(D)은 접지에 있게 될 것이며, 모든 입력 데이터 값이 논리 0이라면 감지 라인(D)은 VDD에 있게 될 것이다.
도 2db를 참조하면, Passd 및 Passdb 신호(211)를 활성화하는 것은(예를 들면, AND 또는 OR 연산과 관련하여) 계산 컴포넌트(231)의 2차 래치에 저장된 누산된 출력을 감지 증폭기(206)의 1차 래치에 전송한다. 예를 들어, AND 연산에 있어서, 이전 연산 위상(예를 들면, 도 2b의 제1 연산 위상, 및도 2ca의 중간 연산 위상 중 하나 이상의 반복)에서 감지된 임의의 메모리 셀이 논리 0을 저장하였다면(예를 들면, AND 연산의 R-입력 중 하나가 논리 0이었다면), 감지 라인(D_)은 논리 1(예를 들면, VDD)에 해당하는 전압을 캐리할 것이고, 감지 라인 D는 논리 0(예를 들면, 접지)에 해당하는 전압을 캐리할 것이다. 이 AND 예에서, 이전 연산 위상에서 감지된 모든 메모리 셀이 논리 1을 저장하였다면(예를 들면, AND 연산의 R-입력이 모두 논리 1이었다면), 감지 라인(D_)은 논리 0에 대응하는 전압을 캐리할 것이며, 및 감지 라인(D)는 논리 1에 대응하는 전압을 캐리할 것이다. 시간(t3)에서, 감지 증폭기(206)의 1차 래치가 활성화되고 감지 라인(D)은 이제 이전 연산 위상 동안 감지된 메모리 셀로부터 결정된 각각의 입력 데이터 값의 AND된 결과를 캐리한다. 따라서, 입력 데이터 값의 어느 것이든 논리 0이면 감지 라인(D)은 접지에 있게 될 것이며, 모든 입력 데이터 값이 논리 1이라면 감지 라인(D)은 VDD에 있게 될 것이다.
OR 연산에 있어서, 이전 연산 위상(예를 들면, 도 2b의 제1 연산 위상, 및도 2cb에 도시된 중간 연산 위상의 하나 이상의 반복)에서 감지된 메모리 셀 중 임의의 것이 논리 1을 저장하였다면(예를 들면, OR 연산의 R-입력 중 하나가 논리 1이었다면), 감지 라인(D_)은 논리 0(예를 들면, 접지)에 해당하는 전압을 캐리할 것이고, 감지 라인(D)은 논리 1(예를 들면, VDD)에 해당하는 전압을 캐리할 것이다. 이 OR 예에서, 이전 연산 위상에서 감지된 모든 메모리 셀이 논리 0을 저장하였다면(예를 들면, OR 연산의 R 입력 모두가 논리 0이었다면), 감지 라인(D)은 논리 0에 대응하는 전압을 캐리할 것이며, 감지 라인(D_)은 논리 1에 대응하는 전압을 캐리할 것이다. 시간(t3)에서, 감지 증폭기(206)의 1차 래치가 활성화되고 감지 라인(D)은 이제 이전 연산 위상 동안 감지된 메모리 셀로부터 결정된 각각의 입력 데이터 값의 OR된 결과를 캐리한다. 따라서, 입력 데이터 값의 어느 것이든 논리 1이면 감지 라인(D)은 VDD에 있게 될 것이며, 모든 입력 데이터 값이 논리 0이라면 감지 라인(D)은 접지에 있게 될 것이다.
R-입력 AND, OR, NAND 및 NOR 연산의 결과는 어레이(230)의 메모리 셀에 다시 저장될 수 있다. 도 2da 및 도 2db에 도시된 예에서, R-입력 논리 연산의 결과는 RowR(예를 들면, 204-R)에 결합된 메모리 셀에 저장된다. 논리 연산의 결과를 RowR 메모리 셀에 저장하는 것은 간단히, RowR을 활성화시킴으로써 RowR 액세스 트랜지스터(202)를 인에이블하는 것을 수반한다. RowR 메모리 셀의 커패시터(203)는 감지 라인(D) 상의 데이터 값(예를 들면, 논리 1 또는 논리 0)에 대응하는 전압까지 구동될 것이고, 이는 RowR 메모리 셀에 이전에 저장된 어떤 데이터 값이든 본질적으로 덮어쓴다. RowR 메모리 셀은 논리 연산을 위한 입력으로서 사용되는 데이터 값을 저장하는 동일한 메모리 셀일 수 있음에 유의한다. 예를 들어, 논리 연산의 결과는 Row0 메모리 셀 또는 Row1 메모리 셀에 다시 저장될 수 있다.
타이밍도(285-4 및 285-5)은 시간(t3)에서 감지 증폭기(206)를 활성화하기 위해 포지티브 제어 신호(290) 및 네거티브 제어 신호(228)가 비활성화(예를 들면, 신호(231)이 하이로, 신호(228)가 로우로 간다)되는 것을 도시한다. 시간(t4)에서, 시간(t2)에서 활성화되었던 각각의 신호(예를 들면, 213 또는 211)는 비활성화된다. 실시예들은 이 예로 제한되지 않는다. 예를 들어, 다수의 실시예에서, 감지 증폭기(206)는 시간(t4) 후에(예를 들면, 신호(213) 또는 신호(211)가 비활성화된 후에) 활성화될 수 있다.
도 2da 및 도 2db에 도시된 바와 같이, 시간(t5)에서, RowR(204-R)가 활성화되어, 선택된 셀의 저장된 요소(예를 들면, 도 2a의 커패시터(203))를 누산기에 저장된 논리 값에 대응하는 전압으로 구동한다. 시간(t6)에서, Row R이 비활성화되고, 시간(t7)에서, 감지 증폭기(206)는 비활성화되고(예컨대, 신호(228 및 290)는 비활성화된다), 시간(t8)에서, 등화가 일어난다(예를 들면, 신호(226)가 활성화되고 보수 감지 라인(205-0, 205-1) 상에 전압은 등화 전압이 된다).
다수의 실시예에서, 도 2a에서 설명된 것과 같은 감지 회로(예를 들면, 메모리 셀을 가진 피치 상에 형성된 회로)는 병렬로 다수의 논리 연산의 수행을 가능하게 할 수 있다. 예를 들어, 16K 열을 갖는 어레이에서, 16K 논리 연산은 버스를 통해 어레이 및 감지 회로로부터 데이터를 전송하지 않고 및/또는 I/O 라인을 통해 어레이 및 감지 회로로부터 데이터를 전송하지 않고 병렬로 수행될 수 있다.
또한, 당업자는 R-입력 논리 연산(예를 들면, NAND, AND, NOR, OR, 등)을 수행하는 능력이 다른 주요 수학 함수들 중에서 가산, 감산, 곱셈 및 제산 및/또는 패턴 비교 함수들의 수행을 가능하게 할 수 있음을 알 것이다. 예를 들어, 일련의 NAND 연산은 결합되어 풀(full) 가산기 기능을 수행할 수 있다. 예로서, 풀 가산기가 캐리 인 및 캐리 아웃과 함께 두 개의 데이터 값을 더하기 위해 12 개의 NAND 게이트를 필요로한다면, 두 개의 32 비트 수를 가산하기 위해 총 384 NAND 연산(12 x 32)이 수행될 수도 있을 것이다. 본 개시의 실시예들은 또한 비-부울(non-Boolean)(예를 들면, 카피, 비교, 등)일 수 있는 논리 연산을 수행하는데 사용될 수 있다.
또한, 다수의 실시예에서, 수행되는 논리 연산에 대한 입력은 감지 회로(예를 들면,도 1의 150)가 결합되는 메모리 어레이(130)에 저장된 데이터 값이 아닐 수도 있다. 예를 들어, 논리 연산에 대한 다수의 입력은 어레이의 행(예를 들면, 도 2a의 230)을 활성화하지 않고 감지 증폭기(예를 들면, 도 2a의 206)에 의해 감지될 수 있다. 예로서, 다수의 입력은 그에 결합된 I/O 라인을 통해 감지 증폭기(206)에 의해 수신될 수 있다. 이러한 입력은 예를 들어 호스트 프로세서(예를 들면, 호스트(110)) 및/또는 외부 제어기로부터와 같이 어레이(230) 외부의 소스로부터 감지 증폭기(206)에(예를 들면, 적절한 I/O 라인을 통해) 제공될 수 있다. 다른 예로서, 논리 연산을 수행하는 것과 관련하여, 특정 감지 증폭기(예컨대, 206) 및 그 대응하는 연산 컴포넌트(예를 들면, 231)에 대한 입력은 다른 감지 증폭기/연산 컴포넌트 쌍으로부터 수신될 수 있다. 예를 들어, 셀들의 제1 열에 결합된 제1 누산기에 저장된 데이터 값(예를 들면, 논리 결과)은 제1 열과 동일한 어레이에 위치할 수도 있고 그렇지 않을 수도 있는 상이한 셀 열에 연관된 상이한(예를 들면, 이웃하는) 감지 증폭기/연산 컴포넌트 쌍으로 전송될 수 있다.
본 개시의 실시예는 도 2a에 도시된 특정 감지 회로 구성으로 제한되지 않는다. 예를 들어, 상이한 계산 컴포넌트 회로가 본원에 기술된 다수의 실시예에 따라 논리 연산을 수행하는데 사용될 수 있다. 도 2a에 도시되지는 않았지만, 많은 실시예에서, 제어 회로는 어레이(230), 감지 증폭기(206) 및/또는 계산 컴포넌트(231)에 결합될 수 있다. 이러한 제어 회로는 예를 들면, 어레이 및 감지 회로(250)와 동일한 칩 상에 및/또는 외부 프로세서와 같은 외부 처리 자원 상에 구현될 수 있으며, 본원에 설명된 바와 같이 논리 연산을 수행하기 위해 어레이 및 감지 회로에 대응하는 다양한 신호의 인에이블/디세이블을 제어할 수 있다.
도 2a, 도 2b, 도 2ca, 도 2cb, 도 2da, 도 2db와 관련하여 설명된 예시적 논리 연산 위상은 데이터 값(예를 들면, 메모리 셀로부터 감지된 데이터 값 및/또는 감지 라인의 전압 또는 전류에 대응하는 데이터 값)을 누산하는 것을 포함한다. 에너지 보존에 기인하여, 논리 연산 위상을 수행하는데 소모되는 에너지는 감지 라인(D 또는 D_)의 커패시턴스를 VDD/2에서 VDD로 충전하는 동안 소비되는 에너지와 대략 동일하며, 이는 감지 증폭기가 활성화 될 때 시작한다(예를 들면, 도 2b, 도 2ca, 도 2cb, 도 2da, 도 2db에 도시된 바와 같이 시간(t3)에서). 이와 같이, 논리 연산을 수행하는 것은 감지 라인(예를 들면, 디지트 라인)을 VDD/2에서 VDD로 충전하는데 사용되는 에너지를 대략 소비한다. 대조적으로, 다양한 이전의 처리 접근법들은 종종, 레일에서 레일로(예를 들면, 접지에서 VDD로) 감지 라인을 충전하는데 사용되는 에너지의 양을 소비하는데, 이는 본원에 설명된 실시예들에 비해 2 배 이상의 에너지일 수 있다.
도 2e는 본 개시의 다수의 실시예에 따른 감지 회로에 결합된 메모리 어레이의 일부의 개략도를 도시한다. 이 예에서, 메모리 어레이는 메모리 셀(MC)(270-0,..., 270-F)을 포함한다. 다수의 실시예에서, 메모리 셀은 파괴 판독 메모리 셀(예를 들면, 셀에 저장된 데이터를 판독하는 것은 셀에 원래 저장되어있는 데이터가 판독된 후에 리프레시되도록 데이터를 파괴한다)이다. 메모리 셀들(270-0,..., 270-F)은 선택 라인들(204)(예를 들면, 워드 라인들)에 의해 결합된 다수의 행들 및 감지 라인들(예를 들면, 디지트 라인들)(205-0,..., 205-M)에 의해 결합된 열들로 배열될 수 있다. 참조를 용이하게 하기 위해, 감지 라인(205-0,..., 205-M)은 보수 감지 라인의 각각의 쌍(예를 들면,도 2a의 205-1, 205-2)을 나타낸다. 비록 도 2e에는 메모리 셀의 단지 하나의 행과 두 개의 열만이 도시되어 있지만, 실시예는 그와 같이 제한되지 않는다. 예를 들어, 특정 어레이는 다수의 열의 메모리 셀 및/또는 감지 라인(예를 들면, 4,096, 8,192, 16,384, 등)을 가질 수 있다. 예로서, 특정 메모리 셀 트랜지스터(예를 들면, 도 2a의 202)의 게이트는 이의 대응하는 워드 라인(204)에 결합될 수 있고, 소스/드레인 영역은 이의 대응하는 감지 라인(예컨대, 205-0)에 결합될 수 있고, 특정 메모리 셀 트랜지스터의 제2 소스/드레인 영역은 이의 대응 커패시터(예를 들면,도 2a의 203)에 결합될 수 있다.
도 2e의 어레이는 본 개시의 다수의 실시예에 따라 감지 회로에 결합될 수 있다. 이 예에서, 감지 회로(250)는 감지 증폭기(206-1,..., 206-P) 및 2차 감지 증폭기(SSA)(268)를 포함한다. 감지 회로 (250)는 도 1에 도시된 감지 회로(150) 일 수 있다. 감지 증폭기(206-1 내지 206-P)는 각각의 감지 라인(205-0 내지 205-M)에 결합된다. 감지 증폭기(206-1 내지 206-P)는 이를테면 도 2a의 감지 증폭기(206)와 같은 감지 증폭기일 수 있다. 감지 증폭기(206-1 내지 206-P)는 각각 트랜지스터(218-1, 218-2)를 통해 입/출력 라인(266-1(IO), 266-2(IO_))에 결합된다. 열 디코드 라인들(264-1(CD-1) 내지 264-R(CD-R))은 트랜지스터들(218-1, 218-2)의 게이트들에 결합되고 선택적으로 활성화되어 각각의 감지 증폭기들(206-1, 206-P)에 의해 감지된 데이터를 IO 라인(266-1, 266-2)을 통해 SSA(268)에 전송한다.
동작에서, 감지 증폭기(예컨대, 206-1 내지 206-P)은 선택 라인(예를 들면, 워드 라인(204))의 활성화에 응답하여 보수 감지 라인(예를 들면, 205-0 내지 205-M)상의 차동 신호(예를 들면, 전압 또는 전류)를 증폭시킴으로써 메모리 셀(예를 들면, 270-0 내지 270-F)에 저장된 데이터 값(예를 들면, 논리 "1" 또는 "0")을 감지할 수 있다. 예로서, 감지 증폭기(206-1 내지 206-P)은 한 쌍의 보수 감지 라인들(205-0)의 감지 라인들 중 하나(예를 들면, 도 2a로부터의 D)를 제1 값(예를 들면, Vcc와 같은 서플라이 전압)으로 구동할 수 있고, 한 쌍의 보수 감지 라인들(205-0)의 다른 감지 라인(도 2a에서 D_)을 제2 값(예를 들면, 접지 전압과 같은 기준 전압에)으로 구동할 수 있다. 이러한 식으로, 메모리 셀(예를 들면, 270-0)에 의해 저장된 데이터 값은 예를 들어, 보수 감지 라인 쌍의 감지 라인 중 어느 것이 Vcc로 구동되는지에 기초하여 결정될 수 있다. 이어, 보수 감지 라인 쌍(205-0 내지 205-M)의 전압은 선택된 열 디코드 라인(264-1 내지 264-R)의 활성화를 통해 I/O 라인(266-1, 266-2)으로 선택적으로 전송될 수 있다. 이러한 방식으로, 감지 증폭기(206-1 내지 206-P)에 의해 감지된 데이터는 I/O 라인(266-1, 266-2)을 통해 SSA(268)로 전송될 수 있다. SSA(268)는 특정 시간에 단일 셀(예를 들면, 셀들(270-0 내지 270-F) 중 하나)로부터의 데이터 값을 저장할 수 있을 뿐이다. 이와 같이, 셀(270-0)에 저장된 데이터를 SSA(268)로 전송하고자 한다면, 열 디코드 라인(264-1)이 활성화될 것이고, 셀(270-F)에 저장된 데이터를 SSA(268)에 전송하고자 한다면, 열 디코드(264-R)가 활성화될 것이다. 라인들(264-1, 264-R) 모두가 활성화되었다면, SSA(268)는 셀들 중 하나에 저장된 실제 저장된 데이터 값들을 결정할 수가 없을 수도 있다.
그러나, 다양한 경우들에서, 열 디코드 라인들(예를 들면, 264-1 내지 264-R) 중 둘 이상을 선택적으로 활성화시키는 것이 유용할 수 있다. 예를 들어, 다수의 열 디코드 라인을 선택적으로 활성화하는 것은 본원에 설명된 다수의 실시예에 따라 WIRED OR 연산을 수행하는 것과 관련하여 행해질 수 있다. 예를 들어, 본 개시의 다수의 실시예에서, 도 2e에 도시된 데이터 경로 부분은 메모리 어레이(예를 들면, 도 1의 어레이(130))에 저장된 데이터가 비교 값과 일치하는지를 결정하도록 동작될 수 있는데, 이는 온-다이 제어 회로(예컨대, 도 1의 제어 회로(140)에 의해 및/또는 "if-then-else" 프로그램 흐름의 일부로서 외부 제어 회로(예를 들면, 도 1의 호스트(110))에 의해 제공될 수 있다.
예시적인 동작에서, 제어 회로(예를 들면, 도 1의 140)는 I/O 라인(예를 들면, 266-1)을 전압(예를 들면, 프리차지 전압)까지 충전(예를 들면, 프리차지)하도록 구성될 수 있다. 예를 들어, I/O 라인(266-1)은 논리 "1"에 대응하는 전압(예를 들면, Vcc와 같은 서플라이 전압)까지 프리차지될 수 있다. 제어 회로는 행 라인들(예를 들면, 메모리 셀(270-0,..., 270-F)을 포함하는 행 라인) 및 열 디코드 라인(264-1 내지 264-R)(예를 들면, CD-1,..., CD-R)을 선택적으로 활성화하도록 구성될 수 있다. 감지 회로(예컨대, 도 1의 150)는 활성화된 행 라인에 결합된 다수의 선택된 메모리 셀들(예를 들면, 270-0,..., 270-F)을 감지하도록 구성될 수 있다. 감지 회로는 열 디코드 라인(CD-1 내지 CD-R)(264-1 내지 264-R)의 선택적인 활성화에 응답하여 IO 라인(266-1)의 프리차지 전압이 변화하는지 여부를 결정하도록 구성될 수 있다.
다수의 실시예에서, 제어 회로(예를 들면, 도 1의 140)는, 감지 회로와 함께, WIRED OR 연산(예를 들면, 메모리 어레이에 저장된 데이터가 비교 값과 일치하는지 결정하기 위해)을 수행하기 위해 사용될 수 있다. 예로서, IO 라인(266-1)은 특정 전압까지 프리차지될 수 있다. 특정 전압은 데이터 값에 대응하는 전압일 수 있다. 예를 들어, 프리차지 전압은 논리 "1"에 대응하는 Vcc와 같은 서플라이 전압 또는 논리 "0"에 대응할 수 있는 접지 전압일 수 있다.
열 디코드 라인(CD-1)의 활성화는 감지 증폭기(206-1)에 저장된 데이터에 대응하는 전압을 IO 라인(266-1, 266-2)에 제공하는 트랜지스터(218-1, 218-2)를 턴온시킨다. 이와 같이, IO 라인(266-1)의 프리차지 전압은 감지 증폭기(206-1)에 저장된 특정 데이터 값(셀(270-0)과 같은 특정 메모리 셀에 저장된 데이터를 나타내는)에 기초하여 변경될 수 있다. 예를 들어, 감지 증폭기(206-1)가 셀(270-0)에 저장된 논리 0(예를 들면, 접지 전압)을 감지한다면, IO 라인(266-1) 상의 프리차지 전압(예를 들면, Vcc)은 CD-1이 활성화되었을 때 풀다운될 것이며, 프리차지 전압의 변화는 SSA(268)에 의해 검출될 수 있다. 이와 같이, 프리차지 전압의 검출된 변화는 감지된 메모리 셀(예를 들면, 270-0)이 프리차지 전압에 대응하는 데이터 값(예를 들면, 1)과 다른 데이터 값(예를 들면, 0)을 저장함을 나타낸다. 유사하게, 감지 증폭기(206-1)가 셀(270-0)에 저장된 논리 1(예를 들면, Vcc)을 감지한다면, IO 라인(266-1) 상의 프리차지 전압(예를 들면, Vcc)은 CD-1이 활성화되었을 때 풀다운되지 않을 것이며, 프리차지 전압의 어떠한 변화도 SSA(268)에 의해 검출되지 않을 것이다. 이와 같이, 프리차지 전압의 검출되지 않은 변화는 감지된 메모리 셀(예를 들면, 270-0)이 프리차지 전압에 대응하는 데이터 값(예컨대, 1)과 동일한 데이터 값(예를 들면, 1 )을 저장하고 있음을 나타낸다.
예를 들어 특정 비교 값이 메모리 어레이에 저장된 데이터와 일치하는지를 결정하기 위해 WIRED OR 연산을 수행하기 위해 프리차지 전압 변화가 사용될 수 있는지 여부를 결정하는 SSA(268)의 전술한 능력. 예로서, 동작이 특정 행 라인에 결합된 다수의 셀들이 특정 비교 값(예를 들면, "0")을 저장하는지 여부를 결정하는 것이라면, 특정 행 라인은 다수의 셀들에 대응하는 감지 라인들과 함께 활성화될 수 있다. 임의의 셀이 논리 "0"을 저장하고 있다면, IO 라인(예를 들면, 로컬 IO 라인)의 프리차지 전압은 변경(예를 들면, 풀다운)될 것이다. 동작의 결과는 예를 들어 요청 제어 회로(예를 들면, 온-다이 제어기, 호스트, 등)에 보고될 수 있다. 동작 결과는 추후 계산을 위해 메모리 배열에 보고될 수 있다. 결정된 결과는 특정 비교 연산 또는 다른 논리 연산의 연속된 실행의 일부로서 사용될 수 있다. 예를 들어, 실행은 행의 메모리 셀 중 임의의 것이 데이터 값(예를 들면, 0)을 저장하는지를 결정할뿐만 아니라, 어느 셀(들)이 데이터 값을 저장 하는지를 결정할 수 있다. 이와 같이, 열 디코드 라인의 서브세트는 선택적으로 활성화되어, 대응하는 셀에 의해 저장된 데이터 값을 비교 연산과 비교할 수 있는데, 이는 예를 들면 비교 연산과 관련하여 사용될 수 있다.
WIRED OR 연산들과 관련하여 사용된 비교 값들은 제어 회로(예컨대, 도 1의 감지 회로(150)(예를 들면, 도 1의 온-다이 제어기(140))에 결합 된)에 의해 및/또는 예를 들어 외부 호스트와 같은 다수의 다른 소스에 의해 요청될 수 있다. 유사하게, WIRED OR 연산의 결과는 다양한 제어 회로에 보고될 수 있고 및/또는 제어 회로에 보고되기 전에 if-then-else 프로그래밍 흐름의 일부로서 추가 동작(예를 들면, 논리 연산)을 수행하는 데 사용될 수 있다.
도 3a는 본 개시의 다수의 실시예에 따라 직렬 비교 연산을 수행하는 것과 연관된 특정 위상에서 어레이(330)의 일부분의 셀들의 상태를 나타내는 논리도를 도시한다. 도 3a는 도 2a의 메모리 어레이(230) 및 도 1의 메모리 어레이(130)와 유사한 메모리 어레이(330)를 포함한다. 메모리 어레이(330)는 감지 라인(305-0, 305-1, 305-2, 305-3, 305-4)(예를 들면, 일반적으로 감지 라인(305)이라 지칭 됨)을 포함한다. 더 많거나 적은 감지 라인이 메모리 어레이(330)에 포함될 수 있다. 감지 라인(305) 각각은 다른 비교 연산을 나타낸다. 예를 들어, 5개의 상이한 감지 라인에 결합된 다수의 메모리 셀에 저장된 값에 기초하여 5개의 상이한 비교 연산이 수행될 수 있다(예를 들면, 병렬로).
메모리 어레이(330)는 또한 선택 라인(304-0, 304-1, 304-2, 304-3, 304-4, 304-5, 304-6, 304-7, 304-8, 304-9)(예를 들면, 일반적으로 선택 라인(304)이라 지칭 됨)을 포함한다. 도 3a에서, 제1 비교 연산은 제1 값(예를 들면, srcA 값)(320-0)을 제2 값(예를 들면, srcB 값)(322-0)과 비교하는 것으로 구성될 수 있다. 제1 비교 연산의 결과는 리셋 값(예를 들면, 목적지 값)의 제1 비트(328-0) 및 제2 비트(330-0)로서 저장될 수 있다. 제2 비교 연산은 제1 값(320-1)을 제2 값(322-1)과 비교하는 것으로 구성될 수 있다. 제2 비교 연산의 결과는 목적지 값의 제1 비트(328-1) 및 제2 비트(330-1)로서 저장될 수 있다. 제3 비교 연산은 제1 값(320-2)을 제2 값(322-2)과 비교하는 것으로 구성될 수 있다. 제3 비교 연산의 결과는 목적지 값의 제1 비트(328-2) 및 제2 비트(330-2)로서 저장될 수 있다. 제4 비교 연산은 제1 값(320-3)을 제2 값(322-3)과 비교하는 것으로 구성될 수 있다. 제4 비교 연산의 결과는 목적지 값의 제1 비트(328-3) 및 제2 비트(330-3)로서 저장될 수 있다. 제5 비교 연산은 제1 값(320-4)을 제2 값(322-4)과 비교하는 것으로 구성될 수 있다. 제5 비교 연산의 결과는 목적지 값의 제1 비트(328-4) 및 제2 비트(330-4)로서 저장될 수 있다.
다수의 예에서, 목적지 값은 비교 연산의 결과의 논리 표현인 제1 비트 및 제2 비트로 구성될 수 있다. 예를 들어, 제1 값이 제2 값보다 크다면, 목적지 값의 제1 비트는 일(예를 들면, "1")로 설정될 수 있고 목적지 값의 제2 비트는 제로(예를 들면, "0")으로 설정될 수 있다. 제2 값이 제1 값보다 크다면, 목적지 값의 제1 비트는 제로(예를 들면, "0")으로 설정되고 목적지 값의 제2 비트는 일(예를 들면, "1")로 설정될 수 있다. 제1 값이 제2 값과 동일하다면, 목적지 값의 제1 비트 및 제2 비트는 제로(예컨대, "0")로 설정될 수 있다. 그러나 목적지 값의 주어진 예는 예시적이다. 비교 연산 결과의 다른 논리 표현은 여기에 제시된 예와 함께 사용될 수 있다.
제1 값(320-0, 320-1, 320-2, 320-3, 320-4)(예를 들면, 일반적으로 제1 값(320)이라고 지칭 됨), 제2 값들(322-0, 322-1, 322-2, 322-3, 322-4)(예를 들면, 일반적으로 제2 값(322)이라고 지칭 됨)은 선택 라인(304) 및 감지 라인(305)에 결합되는 메모리 셀 내 비트-벡터의 일부로서 저장될 수 있다. 도 2a와 관련하여 전술한 Tmp 값 및 tmpset 값은 또한 도 3a에 도시된다. tmp 값(324-0, 324-1, 324-2, 324-3, 324-4)(예를 들면, 일반적으로 tmp 값(324)이라 지칭 됨), tmpset 값(326-0, 326-1, 326-2, 326-3, 326-4)(예를 들면, 일반적으로 tmpset 값(326)이라 지칭 됨), 제1 비트(328-0, 328-1, 328-2, 328-3, 328-4)(예를 들어 일반적으로 제1 비트(328)라 지칭 됨) 및 제2 비트(330-0, 330-1, 330-2, 330-3, 330-4)(예를 들어, 일반적으로 제2 비트(330)라 지칭 됨)를 포함하는 목적지 값은 선택 라인(304) 및 감지 라인(305)에 결합되는 메모리 셀 내 비트-벡터의 일부로서 저장될 수 있다. 예를 들어, 다수의 메모리 셀에 저장된 제1 값(320-0)은 3과 동일한 값을 가질 수 있다. 제1 값(320-0)은 감지 라인(305-0) 및 선택 라인(304-0, 304-1, 304-2)에 결합된 메모리 셀에 저장될 수 있는 비트-벡터 [011]로 표현될 수 있다. 도 3a 내지 도 3m에서, 제1 값(320) 및 제2 값(322) 각각은 3 비트를 사용하여 표현되며, 보다 많거나 적은 비트들이 제1 값(320) 및 제2 값(322)을 나타내기 위해 사용될 수 있다.
도 3a는 메모리 어레이(330) 내의 메모리 셀의 초기 상태를 도시한다. 예를 들어, tmp 값들(324), tmpset 값들(326) 및 목적지 값을 저장하는 메모리 셀은 0으로 초기화될 수 있다. 제1 값(320-0)을 저장하는 메모리 셀은 비트-벡터 [011]를 저장하기 위해 초기화된다. 제1 값(320-0)은 십진수 3과 동일하다. 제1 값(320-1)을 저장하는 메모리 셀은 비트-벡터 [000]을 저장하기 위해 초기화된다. 제1 값(320-1)은 십진수 0과 동일하다. 제1 값(320-2)을 저장하는 메모리 셀은 비트-벡터 [010]을 저장하기 위해 초기화된다. 제1 값(320-2)은 십진수 2와 동일하다. 제1 값(320-3)을 저장하는 메모리 셀은 비트-벡터 [100]를 저장하기 위해 초기화된다. 제1 값(320-3)은 십진수 4와 동일하다. 제1 값(320-4)을 저장하는 메모리 셀은 비트-벡터 [010]을 저장하기 위해 초기화된다. 제1 값(320-4)은 십진수 2와 동일하다.
제2 값(322-0)을 저장하는 메모리 셀은 비트-벡터 [100]를 저장하기 위해 초기화된다. 저장된 제2 값(322-0)은 십진수 4와 동일하다. 제2 값(322-1)을 저장하는 메모리 셀들은 비트-벡터 [001]를 저장하기 위해 초기화된다. 제2 값(322-1)은 1과 동일하다. 제2 값(322-2)을 저장하는 메모리 셀은 비트-벡터 [010]을 저장하기 위해 초기화된다. 제2 값(322-2)은 십진수 2와 동일하다. 제2 값(322-3)을 저장하는 메모리 셀은 비트-벡터 [110]를 저장하기 위해 초기화된다. 제2 값(322-3)은 십진수 5와 동일하다. 제2 값(322-4)을 저장하는 메모리 셀은 비트-벡터 [001]를 저장하기 위해 초기화된다. 제2 값(322-4)은 십진수 1과 동일하다.
도 3b 내지도 도 3m은 본 개시의 다수의 실시예에 따라 비교 연산을 수행하는 것과 관련된 상이한 위상들 동안(예를 들면, 계산 후) 어레이 부분(330)의 메모리 셀의 상태를 나타내는 논리도를 도시한다. 도 3a는 도 2b와 관련하여 설명된 초기화 동작과 같은 어레이 부분(330)의 메모리 셀의 원래(예를 들면, 초기화 된) 상태를 도시한다.
도 3b는 비교 연산을 수행하는 것과 관련된 특정 위상에서(예를 들면,도 3a에 도시된 것에 이어지는 위상에서) 어레이 부분(330)의 셀들의 상태를 도시하는 논리도를 도시한다. 도 3b는 도 2ca 내지 도 2db의 중간 연산 위상들과 함께 기술된 것과 같은 다수의 비교 연산의 제1 반복에서의 제1 단계 후의 어레이 부분(330)의 셀들을 도시한다.
제1 반복에서의 제1 단계는 제1 값(320)(예를 들면, srcA 값) 및 제2 값(322)(예를 들면, srcB 값)로부터의 최상위 비트가 상이한지 여부를 결정하기 위해 수행될 수 있다. 제1 값(320) 및 제2 값(322)로부터의 최상위 비트는 이들이 서로 동일하지 않으면 상이할 수 있다.
다수의 예에서, 제1 세트의 제1 반복은 위에서 논의된 바와 같이 "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset)" 호출, 및/또는 "WriteRow(tmp)" 호출을 수행하는 것을 포함할 수 있다. 3(예를 들면, 3) 비트의 예에서, 제1 반복 동안, "i" 인덱스는 제1 값(320) 및 제2 값(322)에 연관된 다음 최상위 비트가 2의 인덱스(예를 들면, 2)를 가짐을 의미하는 2(예를 들면, 2)로 설정된다.
비교 연산의 제1 반복의 제1 단계는, 예를 들면, 감지 라인(305-0) 및 선택 라인(304-2)에 결합된 메모리 셀에 저장된 제1 값(320-0)으로부터 비트(예를 들어, "0" 비트)를 판독(예를 들어, ReadRow(srcA+i))하는 것과, 감지 라인(305-0) 및 선택 라인(304-5)에 결합된 메모리 셀에 저장된 제2 값(322-0)으로부터 판독된 "0" 비트 및 다음 최상위 비트(예를 들면, "1" 비트)를 입력으로서 사용하여 제1 XOR 연산(예를 들면, XorRow(srcB+i))를 수행하는 것을 포함할 수 있다. 제1 XOR 연산(예를 들면, XorRow(srcB+i))의 결과 (예를 들면, 1) 및 감지 라인(305-0) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0"비트(예를 들면, tmpset 값)은 제2 XOR 연산(예를 들면, XorRow(tmpset))에 대한 입력으로서 사용될 수 있다. 제2 XOR 연산의 결과는 감지 라인(305-0) 및 선택 라인(304-6)에 결합된 메모리 셀(예를 들면, tmp 값과 연관된 메모리 셀)에 저장될 수 있다(예를 들면, WriteRow(tmp)).
제1 반복의 제1 단계는 또한 감지 라인(305-1, 305-2, 305-3, 305-4)과 관련된 비교 연산 각각에 대해 수행될 수 있다. 즉, "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset)" 호출 및 "WriteRow(tmp)" 호출은 감지 라인(305-1, 305-2, 305-3, 305-4)과 관련된 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3c는 비교 연산(예를 들면, 도 3b에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 위상에서 어레이 부분(330)의 셀의 상태를 도시하는 논리도를 도시한다. 도 3c는 다수의 비교 연산의 제1 반복에서 제2 단계 이후의 어레이 부분(330)의 셀을 도시한다. 제1 반복에서의 제2 단계는 제1 값(320)과 제2 값(322)이 상이한지의 결정을 저장하기 위해 수행될 수 있다.
다수의 예에서, 제1 반복의 제2 단계는 "OrRow(tmpset)" 호출 및 "WriteRow(tmpset)" 호출을 수행하는 것을 포함할 수 있다. 비교 연산의 제1 반복의 제2 단계는, 예를 들어, 제2 XOR 연산(예를 들면, XorRow(tmpset))의 결과(예를 들면, "0") 및 감지 라인(305-0) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0" 비트를 사용하여 제1 OR 연산(예를 들면, OrRow(tmpset) tmpset))를 수행하는 것을 포함할 수 있다. 비교 연산의 제1 반복의 제2 단계는 또한 제1 OR 연산(예를 들면, OrRow(tmpset))의 결과를 감지 라인(305-0) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장하기 위해 기록 동작(예를 들면, WriteRow(tmpset))을 수행하는 것을 포함할 수 있다. 제1 반복의 제2 단계는 또한 감지 라인(305-1, 305-2, 305-3, 305-4)과 관련된 다른 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3d는 비교 연산(예를 들면, 도 3c에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 위상에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3d는 다수의 비교 연산의 제1 반복에서 제3 단계 후에 어레이 부분(330)의 셀을 도시한다. 제1 반복의 제3 단계는 제1 값(320)(예를 들면, srcA 값)이 제2 값(322)(예를 들면, srcB 값)보다 큰지 여부를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제1 반복의 제3 단계는 "ReadRow(srcA+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest)" 호출, 및 "WriteRow(dest)"을 수행하는 것을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcA+i))은 감지 라인(305-0) 및 선택 라인(304-2)에 결합된 메모리 셀에 저장된, 제1 값(320-0)으로부터, 최상위 비트(예를 들면, "0")을 판독할 수 있다. 제1 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "0") 및 감지 라인(305-0) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트를 입력으로서 사용할 수 있다. 제1 AND 연산의 결과(예를 들면, 0) 및 감지 라인(305-0) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장된 비트(예컨대, 0)는 제2 OR 연산(예를 들면, OrRow(dest))에 입력으로서 사용될 수 있다. 제2 OR 연산의 결과(예를 들면, 0)는 감지 라인(305-0) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest)). 제1 반복의 제3 단계는 또한 감지 라인(305-1, 305-2, 305-3, 305-4)과 관련된 다른 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3e는 비교 연산(예를 들면, 도 3d에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 위상에서 어레이 부분(330)의 셀의 상태를 도시하는 논리도를 도시한다. 도 3e는 다수의 비교 연산의 제1 반복에서 제4 단계 후에 어레이 부분(330)의 셀을 도시한다. 제1 반복의 제4 단계는 제2 값(322)(예를 들면, srcB 값)이 제1 값(320)(예를 들면, srcA 값)보다 큰지 여부를 결정하기 위해 실행될 수 있다.
다수의 예에서, 제1 반복의 제4 단계는 "ReadRow(srcB+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest+1) 호출, 및 "WriteRow(dest+1)"을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcB+i))은, 예를 들어, 감지 라인(305-0) 및 선택 라인(304-5)에 결합된 메모리 셀에 저장된, 제2 값(322-0)으로부터, 최상위 비트(예컨대, "1")을 판독할 수 있다. 제2 AND 연산(예를 들면, AndRow(tmp))은 감지 라인(305-0) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, 1) 및 판독된(예를 들면, ReadRow(srcB+i) 비트(예를 들면, "1")을 입력으로서 사용할 수 있다. 제2 AND 연산의 결과(예를 들면, "1") 및 감지 라인(305-0) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장된 비트(예를 들면, 0)는 제3 OR 연산(예를 들면, OrRow(dest+1))에 입력으로서 사용될 수 있다. 제3 OR 연산의 결과(예를 들면, 1)는 감지 라인(305-0) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest+1)). 제1 반복의 제4 단계는 또한 감지 라인(305-1, 305-2, 305-3, 305-4)과 관련된 다른 비교 연산 각각에 대해 수행될 수 있다.
도 3f는 비교 연산(예를 들면, 도 3e에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀들의 상태를 나타내는 논리도를 도시한다. 도 3f는 다수의 비교 연산의 제2 반복의 제1 단계 후의 어레이 부분(330)의 셀을 도시한다. 제2 반복의 제1 단계는 제1 값(322)(예를 들면, srcA 값) 및 제2 값(322)(예를 들면, srcB 값)로부터의 다음 최상위 비트들이 상이한지를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제2 반복의 제1 단계는 "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset) 및 "WriteRow(tmp)" 호출을 수행하는 것을 포함할 수 있다. 제2 반복 동안, "i" 인덱스는 제1 값(320) 및 제2 값(322)과 연관된 다음 최상위 비트가 1(예컨대, 1)의 인덱스를 갖는 것을 나타내는 일(예를 들면, 1)로 설정된다.
비교 연산의 제2 반복의 제1 단계는, 예를 들어, 감지 라인(305-4) 및 판독 라인(304-1)에 결합된 메모리 셀에 저장된 제1 값(320-4)으로부터 비트(예를 들어, "1"비트)를 판독(예를 들어, ReadRow(srcA+i)하는 것과, 판독된 비트(예를 들면, "1"비트) 및 감지 라인(305-4) 및 선택 라인(304-4)에 결합된 메모리 셀에 저장된 제2 값(322-4)으로부터 다음 최상위 비트(예를 들면, "0"비트)를 입력으로서 사용하여 제1 XOR 연산(예를 들면, XorRow(srcB+i))을 수행하는 것을 포함할 수 있다. 제1 XOR 연산(예를 들면, XorRow(srcB+i))의 결과(예를 들면, "1") 및 감지 라인(305-4) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0"비트(예를 들면, tmpset 값)은 제2 XOR 연산(예를 들면, XorRow(tmpset))에 대한 입력으로 사용될 수 있다. 제2 XOR 연산의 결과(예를 들면, 1)는 감지 라인(305-4) 및 선택 라인(304-6)에 결합된 메모리 셀(예를 들면, tmp 값에 연관된 메모리 셀)에 저장될 수 있다(예를 들면, WriteRow(tmp)).
비교 연산의 제2 반복의 제1 단계는, 예를 들면, 감지 라인(305-2) 및 선택 라인(304-1)에 결합된 메모리 셀에 저장된 제1 값(320-2)으로부터 비트(예를 들면, "1" 비트)를 판독하는 것(예를 들면, ReadRow(srcA+i))과, 판독된 "1" 비트 및 감지 라인(305-2) 및 선택 라인(304-4)에 결합된 메모리 셀에 저장된 제2 값(322-2)으로부터 다음 최상위 비트(예를 들면, "1"비트)를 입력으로서 사용하여 제1 XOR 연산(예를 들면, XorRow(srcB+i))을 수행하는 것을 포함할 수 있다. 감지 라인(305-2) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 제1 XOR 연산(예를 들면, XorRow(srcB+i)) 및 "0" 비트(예를 들면, tmpset 값)의 결과(예를 들면, "0")은 제2 XOR 연산(예를 들면, XorRow(tmpset))에 대한 입력으로 사용될 수 있다. 제2 XOR 연산의 결과(예를 들면, 0)은 감지 라인(305-2) 및 선택 라인(304-6)에 결합된 메모리 셀(예를 들면, tmp 값에 연관된 메모리 셀)에 저장될 수 있다.
제2 반복의 제1 단계는 또한 감지 라인(305-0, 305-1, 305-3)과 관련된 비교 연산 각각에 대해 수행될 수 있다. 즉, "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset)" 호출 및 "WriteRow(tmp)" 호출은 감지 라인(305-0, 305-1, 305-3)에 연관된 비교 연산 각각에 대해 동시에 수행될 수 있다. 예를 들어, 제2 반복에서 제1 단계를 수행하는 것은 감지 라인(305-3) 및 선택 라인(304-6)에 결합된 메모리 셀에 "1" 비트를 저장하게 할 수 있다.
도 3g는 비교 연산(예를 들면, 도 3f에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 위상에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3g는 제2 반복에서 제2 단계 후에 어레이 부분(330)의 셀을 도시한다. 제2 반복에서의 제2 단계는 제1 값(320)(예를 들면, srcA 값)과 제2 값(322)(예를 들면, srcB 값)이 다른지의 여부를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제2 반복의 제2 단계는 "OrRow(tmpset)" 호출 및 "WriteRow(tmpset)" 호출을 수행하는 것을 포함할 수 있다. 비교 연산의 제2 반복의 제2 단계는, 예를 들어, 제2 XOR 연산(예를 들면, XorRow(tmpset))의 결과(예를 들면, "1") 및 감지 라인(305-4) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0" 비트를 사용하여 제1 OR 연산(예를 들면, OrRow(tmpset))를 수행하는 것을 포함할 수 있다. 비교 연산의 제2 반복의 제2 단계는 제1 OR 연산(예를 들면, OrRow(tmpset))의 결과(예를 들면, "1")를 감지 라인(305-4) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장하기 위한 기록 동작(예를 들면, WriteRow(tmpset))을 수행하는 것을 포함할 수 있다.
다수의 예에서, 제2 반복의 제2 단계는 또한 감지 라인(305-2)과 관련된 비교 연산을 위해 "OrRow(tmpset)" 호출 및 "WriteRow(tmpset)" 호출을 수행하는 것을 포함할 수 있다. 예를 들어, 비교 연산의 제2 반복의 제2 단계는 제2 XOR 연산(예를 들면, XorRow(tmpset))의 결과(예를 들면, "0") 및 감지 라인(305-2) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0" 비트를 사용하여 제1 OR 연산(예를 들면, OrRow(tmpset))을 수행하는 것을 포함할 수 있다. 비교 연산의 제2 반복의 제2 단계는 제1 OR 연산(예를 들면, OrRow(tmpset))의 결과(예를 들면, "0")를 감지 라인(305-2) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장하기 위해 기록 동작(예를 들면, WriteRow(tmpset))를 수행하는 것을 포함할 수 있다.
제2 반복에서의 제2 단계는 또한 감지 라인(305-0, 305-1, 305-3)과 관련된 다른 비교 연산의 각각에 대해 동시에 수행될 수 있다. 예를 들어, 제2 반복에서 제2 단계를 수행하는 것은 감지 라인(305-3) 및 선택 라인(304-7)에 결합된 메모리 셀에 "1"을 저장하게 할 수 있다.
도 3h는 비교 연산(예를 들면, 도 3g에 도시된 것에 이어지는 위상에서)을 수행하는 것과 연관된 특정 위상에서 어레이 부분(330)의 셀의 상태를 도시하는 논리도를 도시한다. 도 3h는 제2 반복에서의 제3 단계 후의 어레이 부분(330)의 셀을 도시한다. 제2 반복의 제3 단계는 제1 값(320)(예를 들면, srcA 값)이 제2 값(322)(예를 들면, srcB 값)보다 큰지 여부를 결정하기 위해 실행될 수 있다.
다수의 예에서, 제2 반복의 제3 단계는 "ReadRow(srcA+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest)" 호출 및 "WriteRow(dest)"을 수행하는 것을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcA+i))은 감지 라인(305-4) 및 선택 라인(304-1)에 결합된 메모리 셀에 저장된, 제1 값(320-4)으로부터, 다음 최상위 비트(예를 들면, "1")를 판독할 수 있다. 제1 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "1") 및 감지 라인(305-4) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "1")를 입력으로서 사용할 수 있다. 제1 AND 연산의 결과(예를 들면, "1") 및 감지 라인(305-4) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")은 제2 OR 연산(예를 들면, OrRow(dest))에 입력으로서 사용될 수 있다. 제2 OR 연산의 결과(예를 들면, "1")는 감지 라인(305-4) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest)).
제2 반복의 제3 단계는, 예를 들어, 감지 라인(305-2) 및 선택 라인(304-1)에 결합된 메모리 셀에 저장된, 제1 값(320-2)으로부터, 다음 최상위 비트(예를 들면, "1")를 판독하기 위해 판독 동작(예를 들면, ReadRow(srcA+i)을 수행하는 것을 포함할 수 있다. 제1 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "1") 및 감지 라인(305-2) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")를 입력으로서 사용할 수 있다. 제1 AND 연산의 결과(예를 들면, "0") 및 감지 라인(305-2) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")은 제2 OR 연산(예를 들면, OrRow(dest))에 입력으로서 사용할 수 있다. 제2 OR 연산의 결과(예를 들면, "0")는 감지 라인(305-2) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest)). 제2 반복의 제3 단계는 또한 감지 라인(305-0, 305-1, 305-3)과 연관된 다른 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3i는 비교 연산(예를 들면, 도 3h에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3i는 제2 반복에서 제4 단계 후에 어레이 부분(330)의 셀을 도시한다. 제1 반복의 제4 단계는 제2 값(322)(예를 들면, srcB 값)이 제1 값(320)(예를 들면, srcA 값)보다 큰지 여부를 결정하기 위해 실행될 수 있다.
다수의 예에서, 제2 반복의 제4 단계는 "ReadRow(srcB+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest+1) 및 "WriteRow(dest+1)"를 수행하는 것을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcB+i))은 감지 라인(305-4) 및 선택 라인(304-4)에 결합된 메모리 셀에 저장된, 제2 값(322-4)으로부터, 다음 최상위 비트(예를 들면, "0")을 판독할 수 있다. 제2 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "0") 및 감지 라인(305-4) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "1")를 입력으로서 사용할 수 있다. 제2 AND 연산의 결과(예를 들면, "0") 및 감지 라인(305-4) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")는 제3 OR 연산(예를 들면, OrRow(dest+1))에 입력으로서 사용할 수 있다. 제3 OR 연산의 결과(예를 들면, 0)는 감지 라인(305-4) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest+1)).
다수의 예에서, 제2 반복의 제4 단계는, 예를 들어, 감지 라인(305-2) 및 선택 라인(304-4)에 결합된 메모리 셀에 저장되는, 제2 값(322-2)으로부터, 다음 최상위 비트(예를 들면, "1")를 판독하기 위해 판독 동작(예를 들면, ReadRow(srcB+i))을 수행할 수 있다. 제2 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "1") 및 감지 라인(305-2) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")를 입력으로서 사용할 수 있다. 제2 AND 연산의 결과(예를 들면, "0") 및 감지 라인(305-0) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")는 제3 OR 연산(예를 들면, OrRow(dest+1))에 입력으로서 사용할 수 있다. 제3 OR 연산의 결과(예를 들면, 0)는 감지 라인(305-2) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest+1)).
제2 반복의 제4 단계는 또한 감지 라인(305-0, 305-1, 305-3)과 관련된 다른 비교 연산 각각에 대해 수행될 수 있다. 예를 들어, 제2 반복에서 제4 단계를 수행하는 것은 감지 라인(305-3) 및 선택 라인(304-9)에 결합된 메모리 셀에 "1"을 저장하게 할 수 있다.
도 3j는 비교 연산(예를 들면, 도 3i에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3j는 다수의 비교 연산의 제3 반복의 제1 단계 후의 어레이 부분(330)의 셀을 도시한다. 제3 반복의 제1 단계는 제1 값(322)(예를 들면, srcA 값) 및 제2 값(322)(예를 들면, srcB 값)로부터의 다음 최상위 비트들이 다른지 여부를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제3 반복의 제1 단계는 "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset) 및 "WriteRow(tmp)" 호출을 포함할 수 있다. 제3 반복 동안, "i" 인덱스는 제1 값(320) 및 제2 값(322)과 관련된 다음 최상위 비트가 제로(예를 들면, "0")의 인덱스를 갖는다는 것을 나타내는 0으로 설정된다.
비교 연산의 제3 반복의 제1 단계는, 예를 들어, 감지 라인(305-1) 및 선택 라인(304-0)에 결합된 메모리 셀에 저장된 제1 값(320-1)으로부터 비트(예를 들면, "0" 비트)를 판독하는 것(예를 들면, ReadRow(srcA+i))과, 판독된 "0"비트 및 감지 라인(305-1) 및 선택 라인(304-0)에 결합된 메모리 셀에 저장된 제2 값(322-1)으로부터 다음 최상위 비트(예를 들면, "1" 비트)를 입력으로서 사용하여 제1 XOR 연산(예를 들면, XorRow(srcB+i))을 수행하는 것을 포함할 수 있다. 제1 XOR 연산(예를 들면, XorRow(srcB+i))의 결과(예를 들면, "1") 및 감지 라인(305-1) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "0" 비트(예를 들면, tmpset 값)는 제2 XOR 연산(예를 들면, XorRow(tmpset))에 대한 입력으로 사용될 수 있다. 제2 XOR 연산의 결과(예를 들면, "1")는 감지 라인(305-1) 및 선택 라인(304-6)에 결합된 메모리 셀(예를 들면, tmp 값에 연관된 메모리 셀)에 저장될 수 있다(예를 들면, WriteRow(tmp)).
제3 반복의 제1 단계는 또한 감지 라인(305-0, 305-2, 305-3, 305-4)과 관련된 비교 연산 각각에 대해 수행될 수 있다. 즉, "ReadRow(srcA+i)" 호출, "XorRow(srcB+i)" 호출, "XorRow(tmpset)" 호출 및 "WriteRow(tmp)" 호출은 감지 라인(305-0, 305-2, 305-3, 305-4)과 관련된 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3k는 비교 연산(예를 들면, 도 3j에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3k는 제3 반복에서 제2 단계 후에 어레이 부분(330)의 셀을 도시한다. 제3 반복의 제2 단계는 제1 값(320)(예를 들면, srcA 값) 및 제2 값(322)(예를 들면, srcB 값)이 다른지의 여부를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제3 반복의 제2 단계는 "OrRow(tmpset)" 호출 및 "WriteRow(tmpset)" 호출을 수행하는 것을 포함할 수 있다. 비교 연산의 제3 반복의 제2 단계는, 예를 들어, 제2 XOR 연산(예를 들면, XorRow(tmpset))의 결과(예를 들면, "1") 및 감지 라인(305-1) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장된 "1" 비트를 사용하여 제1 OR 연산(예를 들면, OrRow(tmpset))을 수행하는 것을 포함할 수 있다. 비교 연산의 제3 반복의 제2 단계는 제1 OR 연산(예를 들면, OrRow(tmpset))의 결과(예를 들면, "1")를 감지 라인(305-1) 및 선택 라인(304-7)에 결합된 메모리 셀에 저장하기 위해 기록 동작(예를 들면, WriteRow(tmpset))을 수행하는 것을 포함할 수 있다. 제3 반복의 제2 단계는 또한 감지 라인(305-0, 305-2, 305-3, 305-4)과 연관된 다른 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3l은 비교 연산(예를 들면, 도 3k에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3l은 제3 반복에서의 제3 단계 후의 어레이 부분(330)의 셀을 도시한다. 제3 반복에서의 제3 단계는 제1 값(320)(예를 들면, srcA 값)이 제2 값(322)(예를 들면, srcB 값)보다 큰지 여부를 결정하기 위해 실행될 수 있다.
다수의 예에서, 제3 반복의 제3 단계는 "ReadRow(srcA+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest)" 호출 및 "WriteRow(dest)"을 수행하는 것을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcA+i))은 감지 라인(305-1) 및 선택 라인(304-0)에 결합된 메모리 셀에 저장된, 제1 값(320-1)으로부터, 다음 최상위 비트(예를 들면, "0")를 판독할 수 있다. 제1 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "0") 및 감지 라인(305-1) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "1")를 입력으로서 사용할 수 있다. 제1 AND 연산의 결과(예를 들면, "0") 및 감지 라인(305-1) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")는 제2 OR 연산(예를 들면, OrRow(dest))에 입력으로서 사용할 수 있다. 제2 OR 연산의 결과(예를 들면, "0")는 감지 라인(305-1) 및 선택 라인(304-8)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest)). 제3 반복의 제3 단계는 또한 감지 라인(305-0, 3305-2, 305-3, 305-4)과 연관된 다른 비교 연산 각각에 대해 동시에 수행될 수 있다.
도 3m은 비교 연산(예를 들면, 도 3l에 도시된 것에 이어지는 위상에서)을 수행하는 것과 관련된 특정 단계에서 어레이 부분(330)의 셀의 상태를 나타내는 논리도를 도시한다. 도 3m은 제3 반복에서 제4 단계 후에 어레이 부분(330)의 셀을 도시한다. 제3 반복의 제4 단계는 제2 값(322)(예를 들면, srcB 값)이 제1 값(320)(예를 들면, srcA 값)보다 큰지 여부를 결정하기 위해 수행될 수 있다.
다수의 예에서, 제3 반복의 제4 단계는 "ReadRow(srcB+i)" 호출, "AndRow(tmp)" 호출, "OrRow(dest+1) 및 "WriteRow(dest+1)"를 수행하는 것을 포함할 수 있다. 판독 동작(예를 들면, ReadRow(srcB+i))은 감지 라인(305-1) 및 선택 라인(304-3)에 결합된 메모리 셀에 저장된, 제2 값(322-1)으로부터, 다음 최상위 비트(예를 들면, "1")을 판독할 수 있다. 제2 AND 연산(예를 들면, AndRow(tmp))은 판독된 비트(예를 들면, "1") 및 감지 라인(305-1) 및 선택 라인(304-6)에 결합된 메모리 셀에 저장된 비트(예를 들면, "1")를 입력으로서 사용할 수 있다. 제2 AND 연산의 결과(예를 들면, "1") 및 감지 라인(305-1) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장된 비트(예를 들면, "0")는 제3 OR 연산(예를 들면, OrRow(dest+1))에 입력으로서 사용할 수 있다. 제3 OR 연산의 결과(예를 들면, "1")는 감지 라인(305-1) 및 선택 라인(304-9)에 결합된 메모리 셀에 저장될 수 있다(예를 들면, WriteRow(dest+1)). 제3 반복의 제4 단계는 또한 감지 라인(305-0, 305-2, 305-3, 305-4)과 연관된 다른 비교 연산 각각에 대해 수행될 수 있다.
다수의 예에서, 각각의 반복에서 제4 단계의 각각 후에, 비교 연산이 현재의 반복에 관계없이 종결되었는지가 결정될 수 있다. 예를 들어, 제1 반복 후에 모든 모든 비교 연산이 제1 값(320) 모두가 제2 값(322)보다 크거나 작다고 결정한다면, 비교 연산은 종료될 수 있다. 모든 비교 연산이 제1 값(320)이 제2 값(322)보다 큰 것으로 결정하였는지 및/또는 제2 값(322)이 제1 값(320)보다 큰지 여부를 결정하는 것은 전술한 WIRED OR 연산을 사용하여 수행될 수 있다. 비교 연산은 비교 연산의 반복 횟수와 관련된 FOR 루프를 벗어남으로써 종료할 수 있다.
그러나, 실시예들은 이 예에 도시된 단계들의 시퀀스의 순서로 제한되지 않는다. 예를 들어, 제1 반복에서 제2 단계는 제1 반복에서 제4 단계 후에 수행될 수 있다.
도 4는 본 개시의 다수의 실시예에 따른 감지 회로의 개략도를 도시한다. 도 4에 도시된 감지 회로는 또한 전술한 바와 같은 비교 연산을 수행하는데 사용될 수 있다. 메모리 셀은 저장 요소(예컨대, 커패시터) 및 액세스 디바이스(예컨대, 트랜지스터)를 포함한다. 예를 들어, 트랜지스터(402-1) 및 커패시터(403-1)는 메모리 셀을 포함하고, 트랜지스터(402-2) 및 커패시터(403-2)는 메모리 셀을 포함하며, 등등. 이 예에서, 메모리 어레이(430)는 1T1C(하나의 트랜지스터 하나의 커패시터) 메모리 셀의 DRAM 어레이이다. 다수의 실시예에서, 메모리 셀은 파괴 판독 메모리 셀(예를 들면, 셀에 저장된 데이터를 판독하는 것은 셀에 원래 저장되어 있는 데이터가 판독된 후에 리프레시되도록 데이터를 파괴한다)일 수 있다. 메모리 어레이(430)의 셀들은 워드 라인((404-X)(Row X), 404-Y(Row Y) 등)에 의해 결합된 행, 및 보수 데이터 라인 쌍(DIGIT(n-1)/DIGIT(n-1)_, DIGIT(n)/DIGIT(n)_, DIGIT(n+1)/DIGIT(n+1)_)에 의해 결합된 열로 배열된다. 보수 데이터 라인의 각 쌍에 대응하는 개별 데이터 라인은 또한 각각 데이터 라인(405-1(D), 405-2(D_))이라 각각 지칭될 수 있다. 도 4에는 3쌍의 보수 데이터 라인만이 도시되어 있지만, 본 개시의 실시예는 이에 국한되지 않으며, 메모리 셀의 어레이는 메모리 셀 및/또는 데이터 라인의 추가의 열들을 포함할 수 있다(예를 들면, 4,096, 8,192, 16,384, 등).
메모리 셀은 상이한 데이터 라인 및/또는 워드 라인에 결합될 수 있다. 예를 들어, 트랜지스터(402-1)의 제1 소스/드레인 영역은 데이터 라인(405-1)(D)에 결합될 수 있고, 트랜지스터(402-1)의 제2 소스/드레인 영역은 커패시터(403-1)에 결합될 수 있고, 트랜지스터(402-1)의 게이트는 워드 라인(404-X)에 결합될 수 있다. 트랜지스터(402-2)의 제1 소스/드레인 영역은 데이터 라인(405-2(D_))에 결합될 수 있고, 트랜지스터(402-2)의 제2 소스/드레인 영역은 커패시터(403-2)에 결합될 수 있고, 트랜지스터(402-2)의 게이트는 워드 라인(404-Y)에 결합될 수 있다. 도 4에 도시된 바와 같이, 셀 플레이트는 커패시터(403-1, 403-2) 각각에 결합될 수 있다. 셀 플레이트는 기준 전압(예컨대, 접지)이 다양한 메모리 어레이 구성에 인가될 수 있는 공통 노드일 수 있다.
메모리 어레이(430)는 본 개시의 다수의 실시예에 따라 감지 회로(450)에 결합된다. 이 예에서, 감지 회로(450)는 메모리 셀의 각각의 열에 대응하는(예를 들면, 보수 데이터 라인의 각각의 쌍에 결합된) 감지 증폭기(406) 및 계산 컴포넌트(431)을 포함한다. 감지 증폭기(406)는 본원에서 1차 래치라 지칭될 수 있는 교차 결합된 래치를 포함할 수 있다. 감지 증폭기(406)는 예를 들어 도 5와 관련하여 설명된 바와 같이 구성될 수 있다.
도 4에 도시된 예에서, 계산 컴포넌트(431)에 대응하는 회로는 정적 래치(482) 및 무엇보다도 동적 래치를 구현하는 추가의 10개의 트랜지스터를 포함한다. 계산 컴포넌트(431)의 동적 래치 및/또는 정적 래치는 본원에서, 누산기로서 작용할 수 있는 2차 래치라고 집합적으로 지칭될 수 있다. 이와 같이, 계산 컴포넌트(431)은 본원에서 누산기로서 동작할 수 있고 및/또는 누산기라 지칭될 수 있다. 계산 컴포넌트(431)은 도 4에 도시된 바와 같이 데이터 라인 D(405-1) 및 D_(405-2)의 각각에 결합될 수 있다. 그러나, 실시예들은 이 예로 제한되지 않는다. 계산 컴포넌트(431)의 트랜지스터는 모두 예를 들어 n-채널 트랜지스터(예를 들면, NMOS 트랜지스터)일 수 있다.
이 예에서, 데이터 라인 D(405-1)는 로드/패스 트랜지스터(418-1)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(416-1, 439-1)의 제1 소스/드레인 영역에 결합될 수 있다. 데이터 라인 D_(405-2)은 로드/패스 트랜지스터(418-2)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(416-2, 439-2)의 제1 소스/드레인 영역에 결합될 수 있다.
로드/패스 트랜지스터(418-1, 418-2)의 게이트는 LOAD 제어 신호에 공통적으로 결합될 수 있거나, 아래에서 더 설명되는 바와 같이, PASSD/PASSDB 제어 신호에 각각 결합될 수 있다. 로드/패스 트랜지스터(418-1)의 제2 소스/드레인 영역은 트랜지스터(416-1, 439-2)의 게이트에 직접 결합될 수 있다. 로드/패스 트랜지스터(418-2)의 제2 소스/드레인 영역은 트랜지스터(416-2, 439-1)의 게이트에 직접 결합될 수 있다.
트랜지스터(416-1)의 제2 소스/드레인 영역은 풀다운 트랜지스터(414-1)의 제1 소스/드레인 영역에 직접 결합될 수 있다. 트랜지스터(439-1)의 제2 소스/드레인 영역은 풀다운 트랜지스터(407-1)의 제1 소스/드레인 영역에 직접 결합될 수 있다. 트랜지스터(416-2)의 제2 소스/드레인 영역은 풀다운 트랜지스터(414-2)의 제1 소스/드레인 영역에 직접 결합될 수 있다. 트랜지스터(439-2)의 제2 소스/드레인 영역은 풀다운 트랜지스터(407-2)의 제1 소스/드레인 영역에 직접 결합될 수 있다. 풀 다운 트랜지스터들(407-1, 407-2, 414-1, 및 414-2) 각각의 제2 소스/드레인 영역은 기준 전압(491)(예를 들면, 접지(GND))에 공통으로 함께 결합될 수 있다. 풀다운 트랜지스터(407-1)의 게이트는 AND 제어 신호 라인에 결합될 수 있고, 풀다운 트랜지스터(414-1)의 게이트는 ANDinv 제어 신호 라인(413-1)에 결합될 수 있고, 풀다운 트랜지스터(414-2)의 게이트는 ORinv 제어 신호 라인(413-2)에 결합될 수 있고, 풀다운 트랜지스터(407-2)의 게이트는 OR 제어 신호 라인에 결합될 수 있다.
트랜지스터(439-1)의 게이트는 노드(S1)라 지칭될 수 있고, 트랜지스터(439-2)의 게이트는 노드(S2)라 지칭될 수 있다. 도 4에 도시된 회로는 누산기 데이터를 노드(S1, S2)에 동적으로 저장한다. LOAD 제어 신호를 활성화하는 것은 로드/패스 트랜지스터(418-1, 418-2)를 도통되게 하여, 보수 데이터를 노드(S1, S2)에 로드한다. LOAD 제어 신호는 VDD보다 큰 전압까지 상승되어 전체 VDD 레벨을 S1/S2로 전송할 수 있다. 그러나, LOAD 제어 신호를 VDD보다 큰 전압까지 상승시키는 것은 선택 사항이며, 도 4에 도시된 회로의 기능은 LOAD 제어 신호가 VDD보다 큰 전압까지 상승되는 것을 조건으로 하지 않는다.
도 4에 도시된 계산 컴포넌트(431)의 구성은 감지 증폭기(406)가 파이어되기 전에(예를 들면, 감지 증폭기(406)의 프리시딩 동안) 풀다운 트랜지스터(407-1, 407-2, 414-1, 414-2)가 도통할 때 기능을 위해 감지 증폭기를 밸런싱하는 이점을 갖는다. 본원에서 사용되는 바와 같이, 감지 증폭기(406)를 파이어한다는 것은 1차 래치를 설정하게 감지 증폭기(406)를 인에이블하고, 이어서 설정된 1차 래치를 유지하도록 감지 증폭기(406)를 디세이블하는 것을 의미한다. 등화가 디세이블된 후에(감지 증폭기에서), 그러나 감지 증폭기가 파이어하기 전에, 논리 연산을 수행하는 것은, 감지 증폭기의 래치가 전체 레일 전압(예를 들면, VDD, GND)을 사용하여 "플립"될 필요가 없기 때문에, 파워 사용을 절약할 수 있다.
반전 트랜지스터는 소정의 논리 연산을 수행할 때 각각의 데이터 라인을 풀다운시킬 수 있다. 예를 들어, 트랜지스터(414-1)(ANDinv 제어 신호 라인(413-1)에 결합된 게이트를 갖는)와 직렬인 트랜지스터(416-1)(동적 래치의 S2에 결합된 게이트를 가짐)는 데이터 라인(405-1)(D)을 풀다운하도록 동작될 수 있고, 트랜지스터(414-2)(ANDinv 제어 신호 라인(413-2)에 결합된 게이트를 갖는)와 직렬인 트랜지스터(416-2)(다이내믹 래치의 S1에 결합된 게이트를 갖는)는 데이터 라인(405-2)(D_)을 풀다운하게 동작될 수 있다.
래치(482)는 접지 및 VDD에 결합함으로써 연속적으로 인에이블되도록 구성되는 것이 아니라 활성 네거티브 제어 신호 라인(412-1)(ACCUMB) 및 활성 브 포지티브 제어 신호 라인(412-2)(ACCUM)에 결합함으로써 제어 가능하게 인에이블될 수 있다. 여러 실시예에서, 로드/패스 트랜지스터(408-1, 408-2)은 각각 LOAD 제어 신호 또는 PASSD/PASSDB 제어 신호 중 하나에 결합된 게이트를 가질 수 있다.
일부 실시예에 따라, 로드/패스 트랜지스터(418-1, 418-2)의 게이트는 LOAD 제어 신호에 공통으로 결합될 수 있다. 로드/패스 트랜지스터(418-1, 418-2)의 게이트가 LOAD 제어 신호에 공통으로 결합되는 구성에서, 로드/패스 트랜지스터(418-1, 418-2)는로드 트랜지스터일 수 있다. LOAD 제어 신호를 활성화하는 것은 로드 트랜지스터를 전도되게 하여, 노드(S1, S2)에 보수 데이터를 로드한다. LOAD 제어 신호는 VDD보다 큰 전압까지 상승되어 전체 VDD 레벨을 S1/S2에 전달할 수 있다. 그러나, LOAD 제어 신호가 VDD보다 큰 전압으로 상승될 필요는 없으며 선택적이며, 도 4에 도시된 회로의 기능은 LOAD 제어 신호가 VDD보다 큰 전압까지 상승되는 것을 조건으로하지 않는다.
일부 실시예에 따라, 로드/패스 트랜지스터(418-1)의 게이트는 PASSD 제어 신호에 결합될 수 있고, 로드/패스 트랜지스터(418-2)의 게이트는 PASSDb 제어 신호에 결합될 수 있다. 로드/패스 트랜지스터(418-1, 418-2)의 게이트가 각각 PASSD 및 PASSDb 제어 신호 중 하나에 결합되는 구성에서, 로드/패스 트랜지스터(418-1, 418-2)는 패스 트랜지스터일 수 있다. 패스 트랜지스터는 부하 트랜지스터와는 다르게(예를 들면, 상이한 시간 및/또는 상이한 전압/전류 조건 하에서) 동작될 수 있다. 이와 같이, 패스 트랜지스터의 구성은 로드 트랜지스터의 구성과 다를 수 있다.
로드 트랜지스터는 예를 들어 로컬 동적 노드(S1, S2)에 데이터 라인을 결합하는 것에 관련된 로딩을 취급하도록 구성된다. 패스 트랜지스터는 데이터 라인을 인접한 누산기에 결합하는 것(예를 들면, 도 4에 도시된 바와 같이 시프트 회로(423)를 통해)과 관련된 더 심한 로딩을 취급하도록 구성된다. 일부 실시예에 따라, 로드/패스 트랜지스터(418-1, 418-2)는 패스 트랜지스터에 대응하는 더 심한 부하를 수용하도록 구성될 수 있지만, 로드 트랜지스터로서 결합되고 동작될 수 있다. 패스 트랜지스터로서 구성된 로드/패스 트랜지스터(418-1, 418-2)은 또한 로드 트랜지스터로서 이용될 수 있다. 그러나, 로드 트랜지스터로서 구성된 로드/패스 트랜지스터(418-1, 418-2)은 패스 트랜지스터로서 이용될 수 없을 수도 있다.
다수의 실시예에서, 래치(482)를 포함하는 계산 컴포넌트(431)은 특정 피처 크기(예를 들면, 4F2, 6F2, 등)에 순응할 수 있는, 어레이(예를 들면, 도 4에 도시된 어레이(430))의 대응 메모리 셀의 트랜지스터를 가진 피치 상에 형성된 다수의 트랜지스터를 포함할 수 있다. 여러 실시예에 따라, 래치(482)는 로드/패스 트랜지스터(418-1, 418-2)를 통해 한쌍의 보수 데이터 라인 D(405-1) 및 D_(405-2)에 결합된 4개의 트랜지스터(408-1, 408-2, 409-1, 409-2)를 포함한다. 그러나, 실시예는 이러한 구성으로 제한되지 않는다. 래치(482)는 교차 결합된 래치일 수 있다(예를 들면, n-채널 트랜지스터(예를 들면, NMOS 트랜지스터)(409-1, 409-2)와 같은 한쌍의 트랜지스터의 게이트는 p-채널 트랜지스터(예를 들면, PMOS 트랜지스터)(408-1, 408-2)와 같은 다른 쌍의 트랜지스터의 게이트와 교차 결합된다. 본원에서 더 설명되는 바와 같이, 교차 결합 래치(482)는 정적 래치라 지칭될 수 있다.
각각의 데이터 라인(D, D_) 상의 전압 또는 전류는 교차 결합 래치(482)의 각 래치 입력(484-1, 484-2)(예를 들면, 2차 래치의 입력)에 제공될 수 있다. 이 예에서, 래치 입력(484-1)은 트랜지스터(408-1, 409-1)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(408-2, 409-2)의 게이트에도 결합된다. 유사하게, 래치 입력(484-2)은 트랜지스터(408-2, 409-2)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(408-1, 409-1)의 게이트에도 결합될 수 있다.
이 예에서, 트랜지스터(409-1, 409-2)의 제2 소스/드레인 영역은 네거티브 제어 신호 라인(412-1)(예를 들면, 1차 래치에 관하여 도 5에 도시된 제어 신호(RnIF)와 유사한 접지(GND) 또는 ACCUMB 제어 신호)에 공통으로 결합된다. 트랜지스터(408-1, 408-2)의 제2 소스/드레인 영역은 포지티브 제어 신호 라인(412-2)(예를 들면, 1차 래치에 관하여 도 5에 도시된 제어 신호(ACT)와 유사한 VDD 또는 ACCUM 제어 신호)에 공통으로 결합된다. 포지티브 제어 신호(412-2)는 서플라이 전압(예를 들면, VDD)을 제공할 수 있고 네거티브 제어 신호(412-1)는 교차 결합 래치(482)를 인에이블하는 기준 전압(예를 들면, 접지)일 수 있다. 일부 실시예에 따라, 트랜지스터(408-1, 408-2)의 소스/드레인 영역은 서플라이 전압(예를 들면, VDD)에 공통으로 직접 결합되고, 트랜지스터(409-1, 409-2)의 제2 소스/드레인 영역은 연속적으로 래치(482)를 인에이블하도록 공통으로 기준 전압(예를 들면, 접지)에 결합된다.
인에이블된 교차 결합 래치(482)는 래치 입력(484-1)(예를 들면, 제1 공통 노드)과 래치 입력(484-2)(예를 들면, 제2 공통 노드) 간에 차동 전압을 증폭하여 래치 입력 래치 입력(484-1)은 활성화된 포지티브 제어 신호 전압(예를 들면, VDD) 또는 활성화된 네거티브 제어 신호 전압(예를 들면, 접지)으로 구동되고 래치 입력(484-2)은 활성화된 포지티브 제어 신호 전압(예를 들면, VDD) 또는 활성화된 네거티브 제어 신호 전압(예를 들면, 접지)로 구동된다.
도 5는 본 발명의 다수의 실시예에 따른 감지 회로의 일부의 개략도를 도시한다. 여러 실시예에 따라, 감지 증폭기(406)는 교차 결합된 래치를 포함할 수 있다. 그러나, 감지 증폭기(506)의 실시예는 교차 결합된 래치로 제한되지 않는다. 예로서, 감지 증폭기(506)는 전류-모드 감지 증폭기 및/또는 단일-엔드 감지 증폭기(예를 들면, 하나의 데이터 라인에 결합된 감지 증폭기)일 수 있다. 또한, 본 개시의 실시예는 폴드(fold)된 데이터 라인 아키텍처로 제한되지 않는다.
다수의 실시예에서, 감지 증폭기(예컨대, 506)는 특정 피처 크기(예를 들면, 4F2, 6F2, 등)에 순응할 수 있는, 어레이(예를 들면, 도 4에 도시된 어레이(430))의 대응 계산 컴포넌트(531) 및/또는 메모리 셀의 트랜지스터를 가진 피치 상에 형성된 다수의 트랜지스터를 포함할 수 있다. 감지 증폭기(506)는 한쌍의 보수 데이터 라인 D(505-1) 및 D_(505-2)에 결합된 4개의 트랜지스터를 포함하는 래치(515)를 포함한다. 래치(515)는 교차 결합된 래치일 수 있다(예를 들면, n-채널 트랜지스터(예를 들면, NMOS 트랜지스터)(527-1, 527-2)와 같은 한쌍의 트랜지스터의 게이트가 p-채널 트랜지스터(예를 들면, PMOS 트랜지스터)(529-1, 529-2)와 같은 다른 쌍의 트랜지스터의 게이트와 교차 결합된다). 본원에서 더 설명되는 바와 같이, 트랜지스터(527-1, 527-2, 529-1, 529-2)를 포함하는 래치(515)는 1차 래치라 지칭될 수 있다. 그러나, 실시예는 이 예로 제한되지 않는다.
각각의 데이터 라인(D, D_) 상의 전압 또는 전류는 교차 결합 래치(515)의 각 래치 입력(533-1, 533-2)(예를 들면, 2차 래치의 입력)에 제공될 수 있다. 이 예에서, 래치 입력(533-1)은 트랜지스터(527-1, 529-1)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(527-2, 529-2)의 게이트에도 결합된다. 유사하게, 래치 입력(533-2)은 트랜지스터(527-2, 529-2)의 제1 소스/드레인 영역뿐만 아니라 트랜지스터(527-1, 529-1)의 게이트에도 결합될 수 있다. 계산 컴포넌트(533)(예를 들면, 누산기)는 도시된 바와 같이 교차 결합된 래치(515)의 래치 입력(533-1, 533-2)에 결합될 수 있는데, 그러나, 실시예들은 도 5에 도시된 예로 제한되지 않는다.
이 예에서, 트랜지스터(527-1, 527-2)의 제2 소스/드레인 영역은 공통적으로 활성 네거티브 제어 신호(528)(RnIF)에 결합된다. 트랜지스터(529-1, 529-2)의 제2 소스/드레인 영역은 활성 포지티브 제어 신호(590)(ACT)에 공통으로 결합된다. ACT 신호(590)는 서플라이 전압(예를 들면, VDD)일 수 있고, RnIF 신호는 기준 전압(예를 들면, 접지)일 수 있다. 신호(528, 590)를 활성화하는 것은 교차 결합 래치(515)를 인에이블시킨다.
인에이블된 교차 결합 래치(515)는 래치 입력(533-1)(예를 들면, 제1 공통 노드)과 래치 입력(533-2)(예를 들면, 제2 공통 노드) 사이의 차동 전압을 증폭하게 동작하여 래치 입력(533-1)은 ACT 신호 전압 및 RnIF 신호 전압 중 하나(예를 들면, VDD 및 접지 중 하나)로 구동되고, 래치 입력(533-2)은 ACT 신호 전압 및 RnIF 신호 전압 중 다른 하나로 구동된다.
감지 증폭기(506)는 데이터 라인(D, D_)를 등화하도록(예를 들면, 감지 동작을 위해 감지 증폭기를 준비하는 것과 관련하여) 구성된 회로를 또한 포함할 수 있다. 이 예에서, 등화 회로는 트랜지스터(586-1)의 제1 소스/드레인 영역 및 데이터 라인 D(505-1)에 결합된 제1 소스/드레인 영역을 갖는 트랜지스터(588)를 포함한다. 트랜지스터(588)의 제2 소스/드레인 영역은 트랜지스터(586-2) 및 데이터 라인 D_(505-2)의 제1 소스/드레인 영역에 결합될 수 있다. 트랜지스터(588)의 게이트는 트랜지스터(586-1, 586-2)의 게이트에 결합될 수 있다.
트랜지스터(586-1, 586-2)의 제2 소스 드레인 영역은 VDD/2와 동일할 수 있는 등화 전압(538)(예를 들면, VDD/2)에 결합되며, 여기서 VDD는 어레이에 연관된 서플라이 전압이다. 트랜지스터(588, 586-1, 586-2)의 게이트는 제어 신호(586)(EQ)에 결합될 수 있다. 이와 같이, EQ를 활성화하는 것은 트랜지스터(588, 586-1, 586-2)를 인에이블하며, 이는 데이터 라인(D, D_)가 등화 전압(VDD/2)로 등화되도록 데이터 라인(D)을 데이터 라인(D_)에 효과적으로 단락시킨다. 본 개시의 여러 실시예에 따라, 다수의 논리 연산은 감지 증폭기를 사용하여 수행될 수 있고 결과를 계산컴포넌트(예를 들면, 누산기)에 저장할 수 있다.
도 4에 도시된 바와 같이, 감지 증폭기(406) 및 계산 컴포넌트(431)은 시프트 회로(423)를 통해 어레이(430)에 연결될 수 있다. 이 예에서, 시프트 회로(423)는 데이터 라인(405-1(D), 405-2(D_))에 각각 결합된 한쌍의 격리 디바이스(예를 들면, 격리 트랜지스터(421-1, 421-2)을 포함한다. 격리 트랜지스터(421-1 및 421-2)는, 활성화 될 때, 격리 트랜지스터(421-1, 421-2)를 인에이블(예를 들면, 턴 온)시켜 대응하는 감지 증폭기(406) 및 계산 컴포넌트(431)을 메모리 셀의 대응하는 열에(예를 들면, 보수 데이터 라인(405-1(D), 405-2(D_)의 대응하는 쌍에) 결합하는 제어 신호(480)(NORM)에 결합된다. 여러 실시예에 따라, 격리 트랜지스터(421-1, 421-2)의 도통은 시프트 회로(423)의 "정상" 구성이라 지칭될 수 있다.
도 4에 도시된 예에서, 시프트 회로(423)는, 예를 들면, NORM이 비활성화 될 때, 활성화될 수 있는 보수 제어 신호(419)(SHIFT)에 결합된 다른 한 쌍의(예를 들면, 제2) 격리 트랜지스터(421-3, 421-4)을 포함한다. 격리 트랜지스터(421-3, 421-4)는 특정 감지 증폭기(406) 및 계산 컴포넌트(431)이 상이한 한쌍의 보수 데이터 라인(예를 들면, 격리 트랜지스터(421-1, 421-2)이 특정 감지 증폭기(406) 및 계산 컴포넌트(431)을 결합하는 한쌍의 보수 데이터 라인과는 상이한 한쌍의 보수 데이터 라인)에 결합되거나 특정 감지 증폭기(406) 및 계산 컴포넌트(431)을 또 다른 메모리 어레이에 결합할 수 있게(그리고 특정 감지 증폭기(406) 및 계산 컴포넌트(431)을 제1 메모리 어레이로부터 격리할 수 있게) 동작될 수 있다(예를 들면, 제어 신호(419)을 통해). 여러 실시예에 따라, 시프트 회로(423)는 예를 들어, 감지 증폭기(406)의 일부로서(예를 들면, 내에) 배치될 수 있다.
도 4에 도시된 시프트 회로(423)가 특정한 감지 회로(450)(예를 들면, 특정 감지 증폭기(406) 및 대응하는 계산 컴포넌트(431))를 특정한 한쌍의 보수 데이터 라인(405-1(D), 405-2(D_))(예를 들면, DIGIT(n) 및 DIGIT(n_))에 결합하기 위해 사용되는 격리 트랜지스터(421-1, 421-2)를 포함하고, 격리 트랜지스터들(421-3, 421-4)이 특정 감지 회로(450)를 한 특정한 방향으로 한쌍의 인접 데이터 라인(예를 들면, 도 4의 우측에 도시된 인접한 데이터 라인(DIGIT(n+1), DIGIT(n+1)_)에 결합하게 배열될지라도, 본 개시의 실시예는 그와 같이 제한되지 않는다. 예를 들어, 시프트 회로는 특정 감지 회로를 특정 쌍의 보수 데이터 라인(예를 들면, DIGIT(n) 및 DIGIT(n_))에 결합하기 위해 사용되는 격리 트랜지스터(421-1, 421-2) 및 특정 감지 회로를 다른 특정 방향으로 한쌍의 인접 보수 데이터 라인(예를 들면, 도 4에 좌측에 도시된 인접한 데이터 라인(DIGIT(n-1), DIGIT(n-1)_)에 결합하기 위해 사용되도록 배열된 격리 트랜지스터(421-3, 421-4)를 포함할 수 있다.
본 개시의 실시예는 도 4에 도시된 시프트 회로(423)의 구성으로 제한되지 않는다. 다수의 실시예에서, 도 4에 도시된 것과 같은 시프트 회로(423)는 예를 들면, I/O 라인(예를 들면, 로컬 I/O 라인(IO/IO_)을 통해 감지 회로(450)로부터 데이터를 전송하지 않고 가산 및 감산 함수와 같은 계산 기능을 수행하는 것에 연관하여 동작될 수 있다(예를 들면, 감지 증폭기(406) 및 계산 컴포넌트(431)과 함께).
도 4에 도시되지는 않았지만, 메모리 셀의 각 열은, 로컬 I/O 라인을 통해, 대응하는 감지 증폭기(406) 및/또는 계산 컴포넌트(431)로부터의 데이터 값을 외부 처리 자원(예를 들면, 호스트 프로세서 및/또는 다른 기능 유닛 회로)와 같은 어레이 외부의 제어 컴포넌트에 전송하도록 활성화될 수 있는 열 디코드 라인에 결합될 수 있다. 열 디코드 라인은 열 디코더(예를 들면, 열 디코더)에 결합될 수 있다. 그러나, 본원에 설명된 바와 같이, 다수의 실시예에서, 본 개시의 실시예에 따라 논리 연산을 수행하기 위해 데이터는 그러한 I/O 라인을 통해 전송될 필요는 없다. 다수의 실시예에서, 시프트 회로(423)는 감지 증폭기(406) 및 계산 컴포넌트(431)와 함께 동작하여 예를 들어 어레이 외부의 제어 컴포넌트로 데이터를 전송하지 않고 가산 및 감산과 같은 계산 기능을 수행할 수 있다.
감지 회로(450)는 논리 연산의 결과가 감지 증폭기(406)에 초기에 저장되는 제1 모드와, 논리 연산의 결과가 계산 컴포넌트(431)에 저장되는 제2 모드를 포함한, 논리 연산을 수행하기 위한 몇가지 모드로 동작될 수 있다. 제1 모드에서 감지 회로(450)의 동작은 도 3 및 도 4와 관련하여 아래에서 기술되고, 제2 모드에서의 감지 회로(450)의 동작은 도 2b 내지 도 3e에 관련하여 기술된다. 또한, 제1 동작 모드와 관련하여, 감지 회로(450)는 논리 연산의 결과가 감지 증폭기(406)에 초기에 저장되는 것인, 사전-감지(예를 들면, 논리 연산 제어 신호가 활성이 되기 전에 파이어된 감지 증폭기) 및 후-감지(예를 들면, 논리 연산 제어 신호가 활성이 된 후에 파이어된 감지 증폭기) 모드 둘 다에서 동작될 수 있다.
후술되는 바와 같이, 감지 증폭기(406)는 계산 컴포넌트(431)과 함께, 어레이로부터의 데이터를 입력으로서 사용하여 각종의 논리 연산을 수행하도록 동작될 수 있다. 다수의 실시예에서, 논리 연산의 결과는 데이터 라인 어드레스 액세스를 통해 데이터를 전송하지 않고(예를 들면, 데이터가 로컬 I/O 라인을 통해 감지 회로 어레이 및 감지 회로 외부의 회로로 전송되도록 열 디코드 신호를 파이어하지 않고) 어레이에 다시 저장될 수 있다. 이와 같이, 본 개시의 다수의 실시예들은 다양한 이전의 접근법보다 적은 파워를 사용하여 논리 연산 및 그와 연관된 계산 기능을 수행할 수 있게 한다. 또한, 다수의 실시예가 계산 기능을 수행하기 위해(예를 들면, 메모리와 이산 프로세서 사이에서) I/O 라인을 통해 데이터를 전송할 필요성을 없애기 때문에, 다수의 실시예는 이전의 접근법과 비교하여 증가된 병렬 처리 능력을 가능하게 할 수 있다.
도 4의 감지 회로(450)의 기능은 논리 연산을 수행하고 초기에 결과를 감지 증폭기(406)에 저장하는 것과 관련하여 이하의 표2에서 설명되고 요약된다. 초기에 특정 논리 연산의 결과를 감지 증폭기(406)의 1차 래치에 저장하는 것은 결과가 초기에 계산 컴포넌트(431)의 2차 래치(예를 들면, 누산기)에 거주하고, 이어서 예를 들면, 감지 증폭기(406)에 후속하여 전송되는 이전의 접근법들과 비교하여 향상된 다기능성을 제공할 수 있다 .
연산 누산기 감지 증폭기
AND 변경되지 않음 결과
OR 변경되지 않음 결과
NOT 변경되지 않음 결과
SHIFT 변경되지 않음 시프트된 데이터
특정 동작의 결과를 감지 증폭기(406)에 초기에 저장하는 것은(예를 들면, 계산 컴포넌트(431)(예를 들면, 누산기)로부터의 결과를 감지 증폭기(406)로 이동시키는 추가의 동작을 수행할 필요없이), 예를 들어 결과가 프리차지 사이클(예를 들면, 보수 데이터 라인(405-1(D) 및/또는 405-2(D_)) 상에)을 수행함이 없이 행에(메모리 셀들의 어레이의) 혹은 누산기에 다시 기록될 수 있기 때문에, 유리하다.
도 6a는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도를 도시한다. 도 6a는 제2 피연산자(예를 들면, Row Y 데이터 값)를 감지 증폭기에 로딩하기 시작한 후에 AND 논리 연산을 개시하는 것과 관련된 타이밍도를 도시한다. 도 6a는 제1 및 제2 피연산자 데이터 값의 다양한 조합에 대한 감지 증폭기 및 누산기 신호를 도시한다. 도 6a는 각각의 세트에서 Row X 데이터 값 및 Row Y 데이터 값의 각 조합에 대응하는 각각의 감지 증폭기 및 누산기 신호를 도시한다. 특정 타이밍도 신호는 도 4에 도시된 회로의 AND 연산과 관련된 의사 코드와 관련하여 아래에 논의된다.
행(404-X)에 결합된 셀에 저장된 제1 데이터 값을 누산기에 로딩(예를 들면, 카피)하는 것과 관련된 의사 코드의 예는 다음과 같이 요약될 수 있다:
Row X 를 누산기로 카피
Deactivate EQ
Activate Row X
Fire Sense Amps (그 후에 Row X 데이터는 감지 증폭기에 ㅅ사상주한다)
Activate LOAD (감지 증폭기 데이터 (Row X)는 누산기의 노드들 S1 및 S2로 이송되고 거기에 동적으로 상주한다)
Close LOAD
Close Row X
Precharge
상기 의사 코드에서, "Deactivate EQ"는 감지 증폭기(406)에 대응하는 등화 신호(도 6a에 도시된 EQ 신호)가 도 6a에 도시된 바와 같이 t1에서 디세이블됨을 나타낸다(예를 들면, 보수 데이터 라인(예를 들면, 405-1(D) 및 405-2(D_))가 더 이상 VDD/2로 단락되지 않게). 등화가 디세이블된 후, 선택된 행(예를 들면, ROW X)은 의사 코드에서 "Activate Row X"로 표시되고 도 6a에서 신호 Row X에 대해 t2에서 도시된 것과 같이 활성화된다. ROW X에 인가된 전압 신호가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들면, 402-2)의 임계 전압(Vt)에 도달할 때, 액세스 트랜지스터는 턴 온하고, 데이터 라인들 사이에 차동 전압 신호를 생성하는 선택된 셀(예를 들면, 커패시터(403-2)))에 데이터 라0인(예를 들면, 405-2(D_))을 결합시킨다.
Row X가 활성화(예를 들면, 선택)된 후, 위의 의사 코드에서, "Fire Sense Amps"는 감지 증폭기(406)가 1차 래치를 설정하게 인에이블되고 이어서 디세이블됨을 나타낸다. 예를 들어, 도 6a의 t3에 나타낸 바와 같이, ACT 포지티브 제어 신호(예를 들면, 도 5에 표시된 590)는 하이가 되고, RnIF 네거티브 제어 신호(예를 들면, 도 5에 도시된 528)은 로우가 되어, 405-1(D)와 D_ 405-2 사이에 차동 신호를 증폭시켜, 논리 1에 대응하는 전압(예를 들면, VDD) 또는 논리 0에 대응하는 전압(예를 들면, GND)을 데이터 라인(405-1(D)) 상에 있게 한다(그리고 다른 논리 상태에 대응하는 전압은 보수 데이터 라인(405-2(D_)) 상에 있게 된다). 감지된 데이터 값은 감지 증폭기(406)의 1차 래치에 저장된다. 주 에너지 소비는 데이터 라인(예를 들면, 405-1(D) 혹은 405-2(D_))을 등화 전압(VDD/2)에서 레일 전압(VDD)로 충전할 때 일어난다.
도 6a에 도시된 4 세트의 가능한 감지 증폭기 및 누산기 신호(예를 들면, Row X 및 Row Y 데이터 값의 각각의 조합에 대해 하나)는 데이터 라인(D, D_) 상의 신호의 거동을 나타낸다. Row X 데이터 값은 감지 증폭기의 1차 래치에 저장된다. 도 4는 Row X에 대응하는, 저장 요소(402-2)를 포함하는 메모리 셀이 보수 데이터 라인(D_)에 결합되는 반면, Row Y에 대응하는, 저장 요소(402-1)를 포함하는 메모리 셀은 데이터 라인(D)에 결합됨을 도시한다. 그러나, 도 4에서 알 수 있는 바와 같이, "0" 데이터 값에 대응하는 메모리 셀(402-2)(Row X에 대응하는)에 저장된 전하는 데이터 라인(D_)(메모리 셀(402-2)이 결합되는) 상에 전압을 하이가 되게 하고, "1" 데이터 값에 대응하는 메모리 셀(402-2)에 저장된 전하는 데이터 라인(D_) 상에 전압을 로우가 되게 하는데, 이는 데이터 라인(D)에 결합되는, Row Y에 대응하여, 데이터 상태와 메모리 셀(402-2)에 저장된 전하 간에 반대되는 상응이다. 서로 다른 데이터 라인에 결합된 메모리 셀의 전하를 저장함에 있어 이러한 차이는 각각의 메모리 셀에 데이터 값을 기록할 때 적절히 고려된다.
감지 증폭기를 파이어한 후, 상기 의사 코드에서, "Activate LOAD"는 LOAD 제어 신호가 도 6a의 t4에 도시된 바와 같이 하이가 되어, 로드/패스 트랜지스터(418-1, 418-2)가 도통되도록 하는 것을 나타낸다. 이러한 방식으로, LOAD 제어 신호를 활성화하는 것은 계산 컴포넌트(431)의 누산기 내의 제2 래치를 인에이블한다. 감지 증폭기(406)에 저장된 감지된 데이터 값은 2차 래치로 전송된다(예를 들면, 카피된다). 도 6a에 도시된 4 세트의 가능한 감지 증폭기 및 누산기 신호 각각에 대해 도시된 바와 같이, 누산기의 2차 래치의 입력에서의 거동은 2차 래치가 Row X 데이터 값으로 로딩됨을 나타낸다. 도 6a에 도시된 바와 같이, 누산기의 제2 래치는, 동적 래치에 이전에 저장된 데이터 값에 따라, 플립할 수도 있고(예를 들면, Row X = "0" 및 Row Y = "0"에 대한 그리고 Row X = "1" 및 Row Y = "0"에 대한 누산기 신호를 참조), 플립하지 않을 수도 있다(예를 들면, Row X ="0" 및 Row Y = "1"에 대한 그리고 행 Row X = "1" 및 Row Y = "1"에 대한 누산기 신호 참조).
상기 의사 코드에서, 감지 증폭기에 저장되어 있는(데이터 라인(405-1(D), 405-2(D_)) 상에 있는) 데이터 값으로부터 2차 래치를 설정한 후, "Close LOAD"는 LOAD 제어 신호가 도 6a의 t5에서 도시된 바와 같이 다시 로우가 되어 로드/패스 트랜지스터들(418-1, 418-2)를 도통을 멈추게함으로써 보수 데이터 라인들로부터 동적 래치를 격리시킴을 나타낸다. 그러나, 데이터 값은 동적으로 누산기의 2차 래치에 저장된 채로 있는다.
데이터 값을 제2 래치에 저장한 후에, 선택된 행(예를 들면, ROW X)은 "Close Row X"에 의해 지시되고 도 6a의 t6에서 나타낸 바와 같이 비활성화되는데, 이는 선택된 셀을 대응하는 데이터 라인으로부터 디커플링하기 위해 액세스 트랜지스터를 턴 오프 함으로써 달성될 수 있다. 일단 선택된 행이 닫히고 메모리 셀이 데이터 라인으로부터 격리되면, 데이터 라인은 위의 의사 코드에서 "Precharge"에 의해 표시된 바와 같이 프리차지될 수 있다. 데이터 라인의 프리차지는 도 6a에 도시된 바와 같이, t7에서 하이가 되는 EQ 신호에 의해 등화 동작에 의해 달성될 수 있다. t7에서 도 6a에 도시된 4 세트의 가능한 감지 증폭기 및 누산기 신호 각각에 도시된 바와 같이, 등화 동작은 데이터 라인(D, D_) 상의 전압을 각각 VDD/2로 복귀시킨다. 등화는 예를 들면, 메모리 셀 감지 동작 또는 논리 연산(하기에서 설명) 이전에 일어날 수 있다.
제1 데이터 값(현재 감지 증폭기(406) 및 계산 컴포넌트(431)의 제2 래치에 저장된) 및 제2 데이터 값(Row Y(404-Y)에 결합된 메모리 셀 (402-1)에 저장된)에 대한 AND 또는 OR 연산을 수행하는 것에 연관된 후속되는 연산 위상은 AND 혹은 OR가 수행될 것인지에 따르는 특정 단계를 수행하는 것을 포함한다. 누산기에 거주된 데이터 값(예를 들면, Row X(404-X)에 결합된 메모리 셀(402-2)에 저장된 제1 데이터 값) 및 제2 데이터 값(예를 들면, Row Y(404-Y)에 결합된 메모리 셀(402-1)에 저장된 데이터 값)을 "ANDing" 및 "ORing"하는 것에 연관된 의사 코드의 예가 이하 요약된다. 데이터 값들을 "ANDing"하는 것에 연관된 예시적 의사 코드는 다음을 포함할 수 있다:
Deactivate EQ
Activate Row Y
Fire Sense Amps(그 후에 Row Y 데이터는 감지 증폭기에 상주한다)
Close Row Y
논리 연산의 결과는, 다음 동작에서, 감지 증폭기에 놓이게 될 것이며, 활성된 임의의 행을 덮어쓸 것이다.
Row Y가 닫혔을 때라도, 감지 증폭기는 여전히 Row Y 데이터 값을 내포한다.
Activate AND
이에 따라 감지 증폭기는 기능의 값(예를 들면, Row X AND Row Y)으로 기록된다
누산기가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 내포한다면, 감지 증폭기 데이터는 "0"으로 기록된다
누산기가 "1"(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 내포한다면, 감지 증폭기 데이터는 변하지 않은 채로 있는다(Row Y 데이터)
이 연산으로 누산기의 데이터는 변경되지 않는다.
Close AND
Precharge
상기 의사 코드에서, "Deactivate EQ"는 감지 증폭기(406)에 대응하는 등화 신호가 디세이블됨을 나타내며(예를 들면, 보수 데이터 라인(405-1(D), 405-2(D_))가 더 이상 VDD/2에 단락되지 않게), 이는 t8에서 도 6a에 도시된다. 등화가 디세이블된 후에, 선택된 행(예를 들면, Row Y)는 "Activate Row Y"에 의해 위의 의사 코드에 표시되고 t9에서 도 6a에 도시된 바와 같이 활성화된다. ROW Y에 인가된 전압 신호가 선택된 셀에 대응하는 액세스 트랜지스터(예를 들면, 402-1)의 임계 전압(Vt)에 도달할 때, 액세스 트랜지스터는 턴 온 되어 데이터 라인(예를 들면, D_ 405-1)을 데이터 라인들 사이에 차동 전압 신호를 생성하는 선택된 셀(예를 들면, 커패시터(403-1)로)에 결합한다.
Row Y가 활성화된 후에, 위의 의사 코드에서, "Fire Sense Amps"는 활성화된 감지(406)가 405-1(D)와 405-2(D_) 사이의 차동 신호를 증폭하도록 인에이블되어, 논리 1에 대응하는 전압(예를 들면, VDD) 혹은 논리 0에 대응하는 전압(예를 들면, GND)이 데이터 라인(405-1(D)) 상에 있게 함을(그리고 다른 논리 상태에 상응하는 전압이 보수 데이터 라인(405-2(D_) 상에 있게 함을) 나타낸다. 도 6a의 t10에 나타낸 바와 같이, ACT 포지티브 제어 신호(예를 들면, 도 5에 도시된 590)는 하이가 되고 RnIF 네거티브 제어 신호(예를 들면, 도 5에 도시된 528)는 로우가 되어 감지 증폭기를 파이어시킨다. 메모리 셀(402-1)로부터의 감지된 데이터 값은 전술한 바와 같이 감지 증폭기(406)의 1차 래치에 저장된다. 동적 래치가 변경되지 않기 때문에, 2차 래치는 여전히 메모리 셀(402-2)로부터의 데이터 값에 대응한다.
Row Y에 결합된 메모리 셀(402-1)로부터 감지된 제2 데이터 값이 감지 증폭기(406)의 1차 래치에 저장된 후, 위의 의사 코드에서, "Close Row Y"는 AND 논리 연산의 결과를 Row Y에 대응하는 메모리 셀에 다시 저장하는 것이 요망되지 않는다면 선택된 행(예를 들면, ROW Y)은 비활성화될 수 있음을 나타낸다. 그러나, 도 6a는 Row Y가 활성인 채로 남겨짐으로써 논리 연산의 결과가 Row Y에 대응하는 메모리 셀에 다시 저장될 수 있게 됨을 도시한다. Row Y에 대응하는 메모리 셀을 격리시키는 것은 데이터 라인(405-1(D))로부터 선택된 셀(402-1)을 디커플링하도록 액세스 트랜지스터가 턴 오프 됨으로써 달성될 수 있다. 선택된 Row Y가 구성된 후(예를 들면, 메모리 셀을 격리시키거나 메모리 셀을 격리시키지 않기 위해), 위의 의사 코드에서 "Activate AND"는 t11에서 도 6a에 도시된 바와 같이 AND 제어 신호가 하이가 되어, 패스 트랜지스터(407-1)가 도통되게 함을 나타낸다. 이러한 방식으로, AND 제어 신호를 활성화하는 것은 기능의 값(예를 들면, Row X AND Row Y)이 감지 증폭기에 기록되게 한다.
제1 데이터 값(예를 들면, Row X)이 누산기(431)의 동적 래치에 저장되고 제2 데이터 값(예를 들면, Row Y)이 감지 증폭기(406)에 저장되어 있을 때, 계산 컴포넌트(431)의 동적 래치가 "0"을 내포한다면(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압), 감지 증폭기 데이터는 노드(S1) 상의 "1"에 대응하는 전압이 트랜지스터(409-1)를 도통되게 하여 감지 증폭기(406)을 트랜지스터(409-1), 패스 트랜지스터(407-1) 및 데이터 라인(405-1(D))을 통해 접지에 결합하기 때문에 "0"으로 기록된다(감지 증폭기에 이전에 저장된 데이터 값에 관계없이). AND 연산의 데이터 값이 "0"일 때, 결과는 "0"이다. 여기에서, 제2 데이터 값(동적 래치 내)이 "0"일 때, AND 연산의 결과는 제1 데이터 값의 상태에 상관없이 "0"이며, 따라서 감지 회로의 구성은 "0" 결과가 감지 증폭기(406)에 기록되고 초기에 저장되게 한다. 이 연산은 누산기의 데이터 값을 변경하지 않게 한다(예를 들면, Row X로부터).
누산기의 제2 래치가 "1"(예를 들면, Row X로부터)을 내포한다면, AND 연산의 결과는 감지 증폭기(406)에 저장된 데이터 값(예를 들면, Row Y로부터)에 의존한다. AND 연산의 결과는 감지 증폭기(406)(예를 들면, Row Y로부터)에 저장된 데이터 값이 또한 "1"이면 "1"이어야 하지만, 감지 증폭기(406)(예를 들면, Row Y로부터)에 저장된 데이터 값이 또한 "0"이면 "0"이어야 한다. 감지 회로(450)는, 누산기의 동적 래치가 "1"을 내포한다면(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압), 트랜지스터(409-1)는 도통되지 않고, 감지 증폭기는 접지에 결합되지 않고(전술한 바와 같이), 감지 증폭기(406)에 이전에 저장된 데이터 값은 변경되지 않은 채로 있게(예를 들면, RowY 데이터 값 따라서 AND 연산 결과는 Row Y 데이터 값이 "1"이면 "1"이 되고, AND 연산 결과는 Row Y 데이터 값이 "0"이면 "0"이다) 구성된다. 이 연산은 누산기의 데이터 값을 변경하지 않게 한다(예를 들면, Row X로부터).
AND 연산의 결과가 초기에 감지 증폭기(406)에 저장된 후, 위의 의사 코드에서 "Close AND"는 AND 제어 신호가 도 6a에서 t12에서 도시된 바와 같이 로우가 되어, 패스 트랜지스터(407-1)를 도통을 멈추게 하여 감지 증폭기(406)(및 데이터 라인(405-1(D))를 접지로부터 격리시키게 함을 나타낸다. 이전에 행해지지 않았다면, Row Y는 닫아질 수 있고(도 6a의 t13에 도시된 바와 같이), 감지 증폭기는 디세이블될 수 있다(ACT 포지티브 제어 신호가 로우가되고, RnIF 네거티브 제어 신호가 하이가 됨에 의해 도 6a의 t14에 도시된 바와 같이). 데이터 라인이 격리되면, 전술한 의사 코드에서 "Precharge"는 전술한 바와 같이 등화 동작(예를 들면, 도 6a에 도시된 t14에서 시작하는)에 의해 데이터 라인의 프리차지를 야기할 수 있다.
도 6a는, 대안예에서, 감지 증폭기(예를 들면, 도 4에 도시된 406)에 결합된 데이터 라인(예를 들면, 도 4에 도시된 405-1(D) 및 405-2(D_)) 상의 전압 신호의 거동 및 피연산자의 가능한 조합(예를 들면, Row X/Row Y 데이터 값 00, 10, 01 및 11) 각각을 수반하는 AND 논리 연산에 대한 계산 컴포넌트(예컨대, 도 4에 도시된 431)의 2차 래치의 노드(S1, S1) 상의 전압 신호의 거동을 도시한다.
도 6a에 도시된 타이밍도 및 전술한 의사 코드가 제2 피연산자(예를 들면, Row Y 데이터 값)를 감지 증폭기에 로딩하기 시작한 후에 AND 논리 연산을 개시함을 나타낼지라도, 도 4에 도시된 회로는 제2 피연산자(예를 들면, Row Y 데이터 값)를 감지 증폭기에 로딩하기를 시작하기 전에 AND 논리 연산을 개시함으로써 성공적으로 동작될 수 있다.
도 6b는 본 개시의 다수의 실시예에 따라 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 관련된 타이밍도를 도시한다. 도 6b는 제2 피연산자(예를 들면, Row Y 데이터 값)를 감지 증폭기에 로딩하기 시작한 후에 OR 논리 연산을 개시하는 것과 관련된 타이밍도를 도시한다. 도 6b는 제1 및 제2 피연산자 데이터 값의 다양한 조합에 대한 감지 증폭기 및 누산기 신호를 도시한다. 특정 타이밍도 신호는 도 4에 도시된 회로의 AND 논리 연산과 관련된 의사 코드와 관련하여 아래에서 논의된다.
후속 연산 위상은 대안적으로, 제1 데이터 값(현재 감지 증폭기(406) 및 계산 컴포넌트(431)의 제2 래치에 저장되어 있는) 및 제2 데이터 값(Row Y(404-Y)에 결합된 메모리 셀(402-1)에 저장된)에 대한 OR 연산을 수행하는 것과 관련될 수 있다. 도 6a에 도시된 시간(t1-t7)에 관하여 이전에 설명된 감지 증폭기 및 누산기에 Row X 데이터를 로드하는 동작은 도 6b에 관련하여 반복하지 않는다. 데이터 값을 "ORing"하는 것에 연관된 의사 코드의 예는 다음을 포함할 수 있다:
Deactivate EQ
Activate Row Y
Fire Sense Amps(그 후에 Row Y 데이터는 감지 증폭기에 상주한다)
CLose Row Y
Row Y가 닫혔을 때, 감기 증폭기는 Row Y 데이터 값을 여전히 내포한다.
Activate OR
이것은 감지 증폭기가 함수(예를 들면, Row X OR Row Y)의 값으로 기록되게 하는데, 이것은 다음과 같이 감지 증폭기에 이전에 저장된 Row Y로부터 데이터 값을 덮어쓸 수 있다:
누산기가 "0"(즉, 노드(S2) 상에 "0"에 대응하는 전압 및 노드(S1) 상에 "1"에 대응하는 전압)을 내포한다면, 감지 증폭기 데이터는 변하지 않은 채로 있는다(Row Y 데이터)
누산기가 "1"(즉, 노드(S2) 상에 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 내포한다면, 감지 증폭기 데이터는 "1"로 기록된다
이 연산은 누산기 내 데이터를 변경되지 않게 한다.
Close OR
Precharge
위에 의사 코드에서 보인, "Deactivate EQ"(도 6b에서 t8에 도시됨), "Activate Row Y"(도 6b의 t9에 도시됨), "Fire Sense Amps"(도 6b의 t10에 도시됨), 및 "Close Row Y"(도 6b의 t13에 도시되고 특정 논리 기능 제어 신호를 개시하기 전에 발생할 수 있음)는 AND 연산 의사 코드와 관련하여 전술한 것과 동일한 기능을 나타낸다. 일단 선택된 Row Y의 구성이 적절하도록 구성되면(예를 들어, 논리 연산 결과가 Row Y에 해당하는 메모리 셀에 저장된다면 활성화되고 혹은 논리 연산 결과가 Row Y에 해당하는 메모리 셀에 저장되지 않을 것이라면 결과로부터 메모리 셀을 격리시키기 위해 닫혀진다), 위의 의사 코드에서 "Activate OR"는 OR 제어 신호가 도 6b의 t11에 도시된 바와 같이 하이가 되어 패스 트랜지스터(407-2)를 도통하게 함을 나타낸다. 이러한 방식으로, OR 제어 신호를 활성화하는 것은 기능(예를 들면, Row X OR Row Y)의 값이 감지 증폭기에 기록되게 한다.
제1 데이터 값(예를 들면, Row X)이 계산 컴포넌트(431)의 2차 래치에 저장되어 있고 제2 데이터 값(예컨대, Row Y)이 감지 증폭기(406)에 저장되었을 때, 누산기의 동적 래치가 "0"(즉, 노드(S2) 상의 "0"에 대응하는 전압 및 노드(S1) 상의 "1"에 대응하는 전압)을 내포한다면, OR 연산의 결과는 감지 증폭기(406)에 저장된 데이터 값(예를 들면, Row Y로부터)에 의존한다. OR 연산의 결과는 감지 증폭기(406)에 저장된 데이터 값(예를 들면, Row Y로부터)이 "1"이면 "1"이어야 하지만, OR 연산의 결과는 감지 증폭기(406)에 저장된 데이터 값(예를 들면, Row Y로부터)이 "0"이면 "0"이어야 한다. 감지 회로(450)는, 누산기의 동적 래치가 "0"을 포함한다면, 노드(S2) 상에 "0"에 대응하는 전압으로, 트랜지스터(409-2)는 오프가 되고 도통하지 않으며(그리고 패스 트랜지스터(407-1)도 AND 제어 신호가 어서트되지 않기 때문에 오프이다) 따라서 감지 증폭기(406)는 접지(양측)에 결합되지 않으며, 감지 증폭기(406)에 이전에 저장된 데이터 값이 변하지 않는채로 있게 되도록(예를 들면, OR 연산 결과가 Row Y 데이터 값이 "1"이면 "1"이고 OR 연산 결과가 Row Y 데이터 값이 "0"이면 "0"이 되게 하는 Row Y 데이터 값), 구성된다.
누산기의 동적 래치가 "1"(즉, 노드(S2) 상의 "1"에 대응하는 전압 및 노드(S1) 상의 "0"에 대응하는 전압)을 내포한다면, 트랜지스터(409-2)는 도통하며(OR 제어 신호가 어서트되기 때문에 패스 트랜지스터(407-2)와 마찬가지로), 데이터 라인(405-2(D_))에 결합된 감지 증폭기(406) 입력은 노드(S2) 상의 "1"에 대응하는 전압이 트랜지스터(409-2)를 패스 트랜지스터(407-2)(OR 제어 신호가 어서트되기 때문에 또한 도통하는)와 함께 도통되게 하기 때문에 접지에 결합된다. 이러한 방식으로, "1"은 감지 증폭기에 이전에 저장된 데이터 값에 관계없이 누산기의 2차 래치가 "1"을 내포할 때 OR 연산의 결과로서 감지 증폭기(406)에 초기에 저장된다. 이 연산으로 누산기의 데이터는 변경되지 않게 된다. 도 6b는, 대안예에서, 감지 증폭기(예를 들면, 도 4에 도시된 406)에 결합된 데이터 라인(예를 들면, 도 4에 도시된 405-1(D) 및 405-2(D_)) 상의 전압 신호의 거동 및 피연산자의 가능한 조합(예를 들면, Row X/Row Y 데이터 값 00, 10, 01, 11) 각각을 수반하는 OR 논리 연산에 대한 계산 컴포넌트(431)의 2차 래치의 노드(S1, S2) 상의 전압 신호의 거동을 도시한다.
OR 연산의 결과가 초기에 감지 증폭기(406)에 저장된 후, 위의 의사 코드에서 "Close OR"은 OR 제어 신호가 도 6b의 t12에 도시된 바와 같이 로우가 되어, 패스 트랜지스터(407-2)를 도통을 멈추게 하여 감지 증폭기(406)(및 데이터 라인 D(405-2))를 접지로부터 격리시키게 함을 나타낸다. 이전에 행해지지 않았다면, Row Y는 닫혀질 수 있고(도 6b의 t13에 도시된 바와 같이), 감지 증폭기는 디세이블될 수 있다(도 6b의 t14에 도시된 바와 같이 ACT 포지티브 제어 신호가 로우로 가고 RnIF 네거티브 제어 신호가 하이로 감으로써). 데이터 라인이 격리되면, 위의 의사 코드에서 "Precharge"는 앞서 설명되고 도 6b의 t14에 도시된 바와 같이 등화 동작에 의해 데이터 라인의 프리차지를 야기할 수 있다.
도 4에 도시된 감지 회로(450)는 다음과 같이 추가적인 논리 연산 융통성을 제공할 수 있다. 전술한 AND 및 OR 연산에서 AND 제어 신호의 동작을 ANDinv 제어 신호의 동작으로 대체하고, 및/또는 OR 제어 신호의 동작을 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 제어 신호를 활성화하는 것은 트랜지스터(414-1)를 도통되게 하고, ANDinv 제어 신호를 활성화하는 것은 트랜지스터(414-2)를 도통되게 한다. 각각의 경우에, 적절한 반전된 제어 신호를 어서트하는 것은 감지 증폭기를 플립할 수 있고, 감지 증폭기(406)에 초기에 저장된 결과를 반전된 Row X 및 트루 Row Y 데이터 값을 사용하는 AND 연산의 것 또는 반전된 Row X 및 트루 Row Y 데이터 값을 사용하는 OR 연산의 것이 되게 한다. 하나의 데이터 값의 트루 또는 컴플리먼트 버전은 예를 들면 먼저 반전될 데이터 값과 두 번째에 반전되지 않을 데이터 값을 로드함으로써, 논리 연산(예를 들면, AND, OR)을 수행하기 위해 누산기에서 사용될 수 있다.
전술한 AND 및 OR 연산에 대한 데이터 값을 반전시키는 것에 관해서 전술한 것과 유사한 접근법에서, 도 4에 도시된 감지 회로는 비반전된 데이터 값을 누산기의 동적 래치에 넣어두고 이 데이터를 감지 증폭기(406)에 데이터 값을 반전하기 위해 사용함으로써 NOT(예를 들면, 반전) 연산을 수행할 수 있다. 전술한 바와 같이, ORinv 제어 신호를 활성화하는 것은 트랜지스터(414-1)를 도통되게 하고, ANDinv 제어 신호를 활성화하는 것은 트랜지스터(414-2)를 도통되게 한다. ORinv 및/또는 ANDinv 제어 신호는 아래에 더욱 설명되는 바와 같이, NOT 함수를 구현하는데 사용된다:
Row X를 누산기로 카피
Deactivate EQ
Activate Row X
Fire Sense Amps(그 후에 Row X 데이터는 감지 증폭기에 상주한다)
Activate LOAD(감지 증폭기 데이터(Row X)는 누산기의 노드들 S1 및 S2로 이송되고 거기에 동적으로 상주한다
Close LOAD
Activate ANDinv and ORinv(데이터 라인들상에 컴플리먼트 데이터( compliment data) 값을 놓는다)
이것은 감지 증폭기 내 데이터 값을 반전되게(예를 들면, 감지 증폭기 래치는 플립된다) 한다
이 연산으로 누산기 내 데이터는 변경되지 않게 된다
Close ANDinv and ORinv
Close Row X
Precharge
상기 의사 코드에 보인 "Deactivate EQ", "Activate Row X", "Fire Sense Amps", "Activate LOAD" 및 "Close LOAD"는 AND 연산 및 OR 연산을 위한 의사 코드 이전에 전술한 "Copy Row X into the Accumulator" 초기 연산 위상을 위한 의사 코드 내의 동일한 연산과 동일한 기능을 나타낸다. 그러나, Row X 데이터가 감지 증폭기(406)에 로드되고 동적 래치에 카피된 후에 Row X를 닫고 프리차지하는 대신에, 누산기의 동적 래치에 데이터 값의 컴플리먼트 버전이 데이터 라인 상에 놓여지며, 반전 트랜지스터를 인에이블(예를 들면, 트랜지스터를 도통되게 한다)하고 디세이블(예를 들면, ANDinv 및 ORinv)함으로써 감지 증폭기(406)로 전송될 수 있다. 그 결과 감지 증폭기(406)는 감지 증폭기에 이전에 저장된 트루진정한 데이터 값에서 컴플리먼트 데이터 값(예를 들면, 반전된 데이터 값)으로 플립된다. 즉, 누산기에 데이터 값의 트루참 또는 컴플리먼트 버전은 ANDinv 및 ORinv를 활성화 및 비활성화함으로써 감지 증폭기로 전송할 수 있다. 이 연산으로 누산기의 데이터는 변경되지 않게 된다.
도 4에 도시된 감지 회로(450)는 AND, OR 및 NOT 논리 연산의 결과를 감지 증폭기(406)(예를 들면, 감지 증폭기 노드 상에)에 초기에 저장하기 때문에, 이들 논리 연산 결과는 용이하고 신속하게, 논리 연산이 완료된 후에 활성화된 임의의 행인, 임의의 활성 행에, 및/또는 계산 컴포넌트(431)의 2차 래치에 통신될 수 있다. 감지 증폭기(406) 및 AND, OR 및/또는 NOT 논리 연산을 위한 시퀀싱은 감지 증폭기(406)가 파이어하기 전에 AND, OR, ANDINv 및/또는 ORinv 제어 신호(및 특정 제어 신호에 결합된 게이트를 갖는 대응하는 트랜지스터의 동작)의 적절한 파이어에 의해 상호 교환될 수 있다.
이러한 방식으로 논리 연산을 수행할 때, 감지 증폭기(406)는 누산기 기능이 감지 증폭기(406)에 카피될 때 감지 증폭기(406)가 완전 레일 전압(예를 들면, 서플라이 전압 또는 접지/기준 전압)에 있지 않기 때문에 이용되는 전체 전류를 감소시키기 위해 누산기의 동적 래치로부터의 데이터 값으로 프리시딩될 수 있다. 프리시딩된 감지 증폭기(406)를 사용한 동작 시퀀스는 데이터 라인 중 하나를 기준 전압이 되게 하거나(보수 데이터 라인을 VDD/2에 있게 한다), 보수 데이터 라인을 변경되지 않은 채로 있게 한다. 감지 증폭기(406)는 감지 증폭기(406)가 파이어할 때 각각의 데이터 라인을 완전 레벨까지 되게 한다. 이 동작 시퀀스를 사용하는 것은 Activate Row에서 데이터를 덮어쓸 것이다.
SHIFT 동작은 종래의 DRAM 격리(ISO) 방식을 사용하여 2개의 이웃하는 데이터 라인 보수 쌍을 멀티플렉싱("muxing")함으로써 달성될 수 있다. 본 개시의 실시예에 따라, 시프트 회로(423)는 특정 쌍의 보수 데이터 라인에 결합된 메모리 셀에 저장된 데이터 값을 다른 쌍의 보수 데이터 라인에 대응하는 감지 회로(450)(예를 들어, 감지 증폭기(406))(예를 들면, 좌측 또는 우측의 인접한 쌍의 보수 데이터 라인에 대응하는 감지 증폭기(406)와 같은)로 시프트시키기 위해 사용될 수 있다. 본원에서 사용되는 바와 같이, 감지 증폭기(406)는 격리 트랜지스터(421-1, 421-2)가 도통하고 있을 때 감지 증폭기가 결합되는 보수 데이터 라인 쌍에 대응한다. SHIFT 동작(우측 또는 좌측)은 Row X 데이터 값을 누산기로 사전-카피하지 않는다. Row X를 우측 시프트하는 동작은 다음과 같이 요약될 수 있다:
Deactivate Norm and Activate Shift
Deactivate EQ
Activate Row X
Fire Sense Amps(그 후에 시프트된 Row X 데이터는 감지 증폭기에 상주한다)
Activate Norm and Deactivate Shift
Close Row X
Precharge
상기 의사 코드에서, "Deactivate Norm and Activate Shift"는 NORM 제어 신호가 로우가 되어 시프트 회로(423)의 격리 트랜지스터(421-1, 421-2)이 도통하지 않도록 함을(예를 들면, 감지 증폭기를 대응하는 보수 데이터 라인 쌍으로부터 격리시킨다) 나타낸다. SHIFT 제어 신호는 하이가 되어 격리 트랜지스터(421-3, 421-4)를 도통되게 하여, 감지 증폭기(406)를 좌측 인접 보수 데이터 라인 쌍(예를 들면, 좌측 인접한 보수 데이터 라인 쌍에 대해서 비도통 격리 트랜지스터(421-1, 421-2)의 메모리 어레이 측 상에)에 결합한다.
시프트 회로(423)가 구성된 후에, 위의 의사 코드에 보인 "Deactivate EQ", "Activate Row X" 및 "Fire Sense Amps"는 AND 연산과 OR 연산을 위한 의사 코드 이전에 위에서 설명한 "Copy Row X into the Accumulator" 초기 연산 위상을 위한 의사 코드 내 동일 동작과 동일한 기능을 나타낸다. 이러한 동작들 후에, 보수 데이터 라인의 좌측 인접한 쌍에 결합된 메모리 셀에 대한 Row X 데이터 값은 우측으로 시프트되고 감지 증폭기(406)에 저장된다.
상기 의사 코드에서, "Activate Norm and Deactivate Shift"는 NORM 제어 신호가 하이가 되어 시프트 회로(423)의 격리 트랜지스터(421-1, 421-2)가 도통되도록 하고(예를 들면, 감지 증폭기를 보수 데이터 라인의 대응하는 쌍에 결합한다), SHIFT 제어 신호는 로우가 되어 격리 트랜지스터(421-3, 421-4)가 도통되지 않게 하여 감지 증폭기(406)를 보수 데이터 라인의 좌측 인접한 쌍(예를 들면, 좌측 인접한 보수 데이터 라인 쌍에 대해서 비도통 격리 트랜지스터(421-1, 421-2)의 메모리 어레이 측 상에)으로부터 격리시킴을 나타낸다. Row X가 여전히 활성이기 때문에, 우측으로 시프트된 Row X 데이터 값은 격리 트랜지스터(421-1, 421-2)를 통해 대응하는 보수 데이터 라인 쌍의 Row X로 전송된다.
Row X 데이터 값이 대응하는 보수 데이터 라인 쌍으로 우측으로 시프트된 후, 선택된 행(예를 들면, ROW X)는 위의 의사 코드에서 "Close Row X"에 의해 나타낸 바와 같이 비활성화되는데, 이는 선택된 셀을 대응하는 데이터 라인으로부터 디커플링하기 위해 액세스 트랜지스터를 턴 오프함으로써 달성될 수 있다. 일단 선택된 행가 닫히고 메모리 셀이 데이터 라인으로부터 격리되면, 데이터 라인은 위의 의사 코드에서 "Precharge"에 의해 나타낸 바와 같이 프리차지될 수 있다. 데이터 라인의 프리차지는 전술한 바와 같이 등화 동작에 의해 달성될 수 있다.
Row X를 좌측으로 시프트하는 동작은 다음과 같이 요약할 수 있다:
Activate Norm and Deactivate Shift
Deactivate EQ
Activate Row X
Fire Sense Amps (그 후에 Row X 데이터는 감지 증폭기에 상주한다)
Deactivate Norm and Activate Shift
감지 증폭기 데이터 (왼쪽 시프트된 Row X)는 Row X로 이송된다
Close Row X
Precharge
상기 의사 코드에서, "Activate Norm and Deactivate Shift"는 NORM 제어 신호가 하이가 되어 시프트 회로(423)의 격리 트랜지스터(421-1, 421-2)가 도통되게 하고, SHIFT 제어 신호가 로우가 되어 격리 트랜지스터(421-3, 421-4)가 도통되지 않게 함을 나타낸다. 이 구성은 감지 증폭기(406)를 대응 보수 데이터 라인 쌍에 결합하고 감지 증폭기를 우측에 인접 보수 데이터 라인 쌍으로부터 격리시킨다.
시프트 회로가 구성된 후, 위의 의사 코드에 보인 "Deactivate EQ", "Activate Row X" 및 "Fire Sense Amps"는 AND 연산 및 OR 연산을 위한 의사 코드 이전에 위에서 설명한 "Copy Row X into the Accumulator"" 초기 연산 위상에 대한 의사 코드 내 동일 동작과 동일한 기능을 나타낸다. 이러한 동작 후에, 감지 회로(450)에 대응하는 보수 데이터 라인 쌍에 결합된 메모리 셀에 대한 Row X 데이터 값은 감지 증폭기(406)에 저장된다.
상기 의사 코드에서, "Deactivate Norm and Activate Shift"는 NORM 제어 신호가 로우가 되어 시프트 회로(423)의 격리 트랜지스터(421-1, 421-2)을 도통되지 않게 하며(예를 들면, 감지 증폭기를 대응 보수 데이터 라인 쌍으로부터 격리시킨다), SHIFT 제어 신호는 하이가 되어 격리 트랜지스터(421-3, 421-4)가 도통되어 감지 증폭기를 좌측 인접한 보수 데이터 라인 쌍에(예를 들면, 좌측 인접한 보수 데이터 라인 쌍에 대해서 비도통 격리 트랜지스터(421-1, 421-2)의 메모리 어레이 측 상에) 결합시킴을 나타낸다. Row X가 여전히 활성이므로, 좌측으로 이동되어진 Row X 데이터 값은 좌측의 인접한 보수 데이터 라인 쌍의 Row X로 전송된다.
Row X 데이터 값이 좌측 인접 보수 데이터 라인 쌍으로 좌측으로 이동된 후, 선택된 행(예를 들면, ROW X)는 "Close Row X"로 나타낸 바와 같이 디세이블되며, 이는 선택된 셀을 대응하는 데이터 라인으로부터 디커플링하도록 액세스 트랜지스터를 턴 오프함에 의해 달성될 수 있다. 일단 선택된 행이 닫히고 메모리 셀이 데이터 라인으로부터 격리되면, 데이터 라인은 위의 의사 코드에서 "Precharge"에 의해 나타낸 바와 같이 프리차지될 수 있다. 데이터 라인의 프리차지는 전술한 바와 같이 등화 동작에 의해 달성될 수 있다.
여러 실시예에 따라, 예를 들어, 6F^2 또는 4F^2 메모리 셀 크기에서 메모리 셀당 DRAM 하나의 트랜지스터(예를 들면, 1T1C) 구성과 같은 프로세서-인-메모리(PIM) 디바이스의 메모리 어레이 코어에서 일반적인 계산이 가능해질 수 있다. 본원에 설명된 장치 및 방법의 이점은 단일 명령 속도의 관점에서 실현되는 것이 아니라, 메모리 어레이(예를 들면, DRAM)로부터 데이터를 전송하거나 열 디코드를 파이어함이 없이 데이터의 전체 뱅크가 병렬로 계산됨에 의해 달성될 수 있는 누진적 속도에 의해 실현된다. 즉, 데이터 전송 시간을 없앨 수 있다. 예를 들어, 본 개시의 장치는 데이터 라인(예를 들면, 16K 메모리 셀의 열)에 결합된 메모리 셀의 데이터 값을 사용하여 AND 또는 OR를 동시에 수행할 수 있다.
논리 연산 처리(예를 들면, 32 또는 64 비트 레지스터를 사용하여)를 위해 데이터가 이동되는 이전 접근법의 감지 회로에서, 본 개시의 장치와 비교하여 더 적은 동작이 병렬로 수행될 수 있다. 이러한 방식으로, 서로 간에 데이터가 전송되어야만 하게 메모리와는 별개로 중앙 처리 장치(CPU)를 포함하는 종래의 구성과는 달리, 상당히 높은 처리량이 효과적으로 제공된다. 본 개시에 따른 장치 및/또는 방법은 또한 CPU가 메모리와는 별개인 구성보다 적은 에너지/면적을 사용할 수 있다. 또한, 본 개시의 장치 및/또는 방법은 메모리 어레이 내 논리 연산이 특정 데이터 값 전송을 제거함으로써 에너지를 절약하기 때문에 보다 작은 에너지/면적 장점을 개선할 수 있다.
도 7은 본 개시의 다수의 실시예에 따라 선택 가능한 논리 연산 선택 논리를 갖는 감지 회로를 나타내는 개략도이다. 도 7은 한쌍의 보수 감지 라인(705-1, 705-2)에 결합된 감지 증폭기(706) 및 패스 게이트(707-1, 707-2)를 통해 감지 증폭기(706)에 결합된 계산 컴포넌트(731)을 도시한다. 패스 게이트(707-1, 707-2)의 게이트는 논리 연산 선택 논리(713-5)로부터 출력될 수 있는 논리 연산 선택 논리 신호(PASS)에 의해 제어될 수 있다. 도 7은 계산 컴포넌트(731)에 저장된 데이터 값이 "A" 데이터 값이고 감지 증폭기(706)에 저장된 데이터 값이 도 8과 관련하여 도시된 논리 표에 도시된 "B" 데이터 값임을 나타내기 위해 "A"로 표기된 계산 컴포넌트(731) 및 "B"로 표기된 감지 증폭기(706)를 도시한다.
도 7에 도시된 감지 회로(750)는 논리 연산 선택 논리(713-5)을 포함한다. 이 예에서, 논리(713-5)은 논리 연산 선택 논리 신호(PASS*)에 의해 제어되는 스왑 게이트(742)를 포함한다. 논리 연산 선택 논리(713-5)는 또한 4개의 논리 선택 트랜지스터로서, 스왑 트랜지스터(742)의 게이트와 TF 신호 제어 라인 사이에 결합된 논리 선택 트랜지스터(762), 패스 게이트(707-1, 707-2)의 게이트와 TT 신호 제어 라인 사이에 결합된 논리 선택 트랜지스터(752), 패스 게이트(707-1, 707-2)의 게이트와 FT 신호 제어 라인 사이에 결합된 논리 선택 트랜지스터(754), 및 스왑 트랜지스터(742)의 게이트와 FF 신호 제어 라인 사이에 결합된 논리 선택 트랜지스터(764)를 포함한다. 논리 선택 트랜지스터(762, 752)의 게이트는 격리 트랜지스터(781-1)(ISO 신호 제어 라인에 결합된 게이트를 갖는)를 통해 트루 감지 라인(예를 들면, 705-1)에 결합되고, 논리 선택 트랜지스터(764, 754)의 게이트는 격리 트랜지스터(781-2)(또한 ISO 신호 제어 라인에 결합된 게이트를 갖는)를 통해 보수 감지 라인(예를 들면, 705-2)에 결합된다.
논리 선택 트랜지스터(752, 754)는 도 4에 도시된 바와 같이 각각 트랜지스터(407-1)(AND 신호 제어 라인에 결합된) 및 트랜지스터(407-2)(OR 신호 제어 라인에 결합된)와 유사하게 배열된다. 논리 선택 트랜지스터(752, 754)의 동작은 TT 및 FT 선택 신호의 상태 및 ISO 신호가 어서트될 때에 각각의 보수 감지 라인 상의 데이터 값에 기초하여 유사하다. 논리 선택 트랜지스터(762, 764)는 또한 스왑 트랜지스터(742)의 제어 연속성과 유사한 방식으로 동작한다. 즉, 스왑 트랜지스터(742)를 OPEN(예를 들면, 턴 온) 하기 위해, TF 제어 신호는 트루 감지 라인 상의 데이터 값이 "1"로 하여 활성화되거나(예를 들면, 하이로) 또는 FF 제어 신호는 보수 감지 라인 상의 데이터 값이 "1"로 하여 활성화된다(예를 들면, 하이). 대응하는 감지 라인(예를 들면, 특정 논리 선택 트랜지스터의 게이트가 결합되는 감지 라인) 상에 각각의 제어 신호 또는 데이터 값이 하이가 아니라면, 스왑 트랜지스터(742)는 특정 논리 선택 트랜지스터에 의해 OPEN되지 않을 것이다.
PASS* 제어 신호는 반드시 PASS 제어 신호에 보수인 것은 아니다. 예를 들어, PASS 및 PASS* 제어 신호가 모두 활성화되거나 동시에 비활성화될 수 있다. 그러나, 동시에 PASS 및 PASS* 제어 신호 둘 다의 활성화는 보수 감지 라인 쌍을 함께 단락시키는데, 이는 피할 파괴성 구성일 수 있다. 도 7에 도시된 감지 회로에 대한 논리 연산 결과는 도 8에 도시된 논리 표에 요약되어 있다.
도 8은 본 개시의 다수의 실시예에 따라 도 7에 도시된 감지 회로에 의해 구현가능한 선택가능한 논리 연산 결과를 나타내는 논리 표이다. 보수 감지 라인 상에 존재하는 특정 데이터 값과 관련하여 4개의 논리 선택 제어 신호들(예를 들면, TF, TT, FT 및 FF)은 감지 증폭기(706) 및 계산 컴포넌트(731)에 저장된 시작 데이터 값들을 수반하여 구현을 위해 복수의 논리 연산들 중 하나를 선택하기 위해 사용될 수 있다. 보수 감지 라인 상에 존재하는 특정 데이터 값과 관련하여 4개의 제어 신호는 패스 게이트(707-1, 707-2) 및 스왑 트랜지스터(742)의 연속성을 제어는데, 이에 따라 파이어 전/후에 계산 컴포넌트(731) 및/또는 감지 증폭기(706)의 데이터 값에 영향을 미치게 된다. 스왑 트랜지스터(742)의 연속성을 선택가능하게 제어하는 능력은 무엇보다도, 반전 데이터 값(예를 들면, 반전 피연산자 및/또는 반전 결과)을 포함하는 논리 연산을 구현하는 것을 용이하게 한다.
도 8에 도시된 논리 표는 844에 열 A에 도시된 계산 컴포넌트(731)에 저장된 시작 데이터 값 및 845에 열 B에 도시된 감지 증폭기(706)에 저장된 시작 데이터 값을 도시한다. 도 8의 논리 표에서 다른 3개의 맨 위에 열 표제(NOT OPEN, OPEN TRUE, 및 OPEN INVERT)는 패스 게이트(707-1, 707-2) 및 스왑 트랜지스터(742)의 연속성을 지칭하며, 이들은 각각, ISO 제어 신호가 어설트될 때 한쌍의 보수 감지 라인(705-1, 705-2) 상에 존재하는 특정 데이터 값과 함께, 4개의 논리 선택 제어 신호(예를 들면, TF, TT, FT 및 FF)의 상태에 따라 OPEN 또는 CLOSED되게 제어될 수 있다. "Not Open" 열은 모두 비도통 상태에 있는 패스 게이트(707-1, 707-2)와 스왑 트랜지스터(742)에 대응하고, "Open True"는 도통 상태에 있는 패스 게이트(707-1, 707-2)에 대응하고, "Open Invert"은 도통 상태에 있는 스왑 트랜지스터(742)에 대응한다. 모두가 도통 상태에 있는 패스 게이트(707-1, 707-2) 및 스왑 트랜지스터(742)에 대응하는 구성은 감지 라인 내 이 결과가 함께 단락되기 때문에 도 8의 논리 표에 반영되지 않았다.
패스 게이트(707-1, 707-2) 및 스왑 트랜지스터(742)의 연속성의 선택적 제어를 통해, 도 8의 논리 표의 상측에 부분의 2개의 행들의 제1 세트의 3개의 열 각각은 875로 도시된 다양한 결합 경로에 의해 표시된 바와 같이, 9개의 상이한 논리 연산에 대응하여, 3x3 = 9개의 상이한 결과 조합을 제공하기 위해 제1 세트 아래에 제2 세트의 2개의 행의 3개의 열의 각각과 조합될 수 있다. 감지 회로(750)에 의해 구현될 수 있는 9개의 상이한 선택가능한 논리 연산은 도 8에 도시된 논리 표에 요약된다.
도 8에 도시된 논리 표의 하측 부분의 열은 논리 선택 제어 신호의 상태를 포함하는 표제(880)를 도시한다. 예를 들어, 제1 논리 선택 제어 신호의 상태는 행(876)에 제공되고, 제2 논리 선택 제어 신호의 상태는 행(877)에 제공되고, 제3 논리 선택 제어 신호의 상태는 행(878)에 제공되고, 제4 논리 선택 제어 신호의 논리 상태는 행(879)에 제공된다. 결과에 대응하는 특정 논리 연산은 행(847)에 요약된다.
이와 같이, 도 7에 도시된 감지 회로는 도 8에 도시된 바와 같이 다양한 논리 연산을 수행하기 위해 사용될 수 있다. 예를 들어, 감지 회로(750)는 본 개시의 다수의 실시예들에 따라 메모리 내의 데이터 패턴들을 비교하는 것과 관련하여 다양한 논리 연산(예를 들면, AND 및 OR 논리 연산)을 수행하게 동작될 수 있다.
결어
본 개시는 메모리에서 비교 연산을 수행하는 것에 관계된 장치 및 방법을 포함한다. 예시적인 장치는 감지 라인에 그리고 제1 개수의 선택 라인에 결합된 제1 개수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간을 포함할 수도 있을 것이다. 제1 값은 제1 어드레스 공간에 저장될 수 있다. 메모리 어레이의 제2 어드레스 공간은 감지 라인 및 제2 개수의 선택 라인에 결합된 제2 개수의 메모리 셀을 포함한다. 제2 값은 제2 어드레스 공간에 저장될 수 있다. 메모리 어레이의 제3 어드레스 공간은 감지 라인에 그리고 제3 개수의 선택 라인에 결합된 제3 개수의 메모리 셀을 포함한다. 결과는 제3 어드레스 공간에 저장될 수 있다. 감지 회로는 제1 값 및 제2 값을 수신하고 제1 값을 제2 값과 비교하여 제1 값 및 제2 값 중 어느 것이 더 큰지를 결정하고 비교 연산의 결과를 제3 어드레스 공간에 저장하도록 구성될 수 있다.
특정 실시예가 본원에 도시되고 설명되었지만, 당업자라면 동일한 결과를 얻기 위해 계산된 배치가 도시된 특정 실시예를 대체할 수 있음을 알 것이다. 본 개시는 본 개시의 하나 이상의 실시예의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 예시적인 방식으로 이루어졌으며 제한적인 것이 아님을 이해해야 한다. 상기 실시예들과 본원에 구체적으로 설명되지 않은 다른 실시예들과의 조합은 상기 설명을 검토할 때 당업자에게 명백해질 것이다. 본 개시의 하나 이상의 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 응용을 포함한다. 그러므로, 본 개시의 하나 이상의 실시예의 범위는 첨부된 청구 범위와 그러한 청구항이 부여되는 등가물의 전체 범위를 참조하여 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징들은 본 개시을 능률화할 목적으로 단일 실시예에서 함께 그룹화된다. 본 개시의 방법은 본 개시의 개시된 실시예가 각 청구항에 명시적으로 언급된 것보다 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구 범위가 반영하는 바와 같이, 발명의 주제는 단일 개시된 실시예의 모든 특징보다 적다. 따라서, 이하의 청구 범위는 상세한 설명에 포함되며, 각 청구항은 별개의 실시예로서 독자적으로 기재된다.

Claims (30)

  1. 값들을 비교하는 방법으로서,
    메모리 어레이의 감지 라인에 결합된 다수의 메모리 셀들의 제1 부분에 저장된 제1 값의 논리 표현 및 상기 메모리 어레이의 상기 감지 라인에 결합된 상기 다수의 메모리 셀들의 제2 부분에 저장된 제2 값의 논리 표현(logical representation)을 사용하여 메모리에서 비교 연산을 수행하는 단계로서,
    상기 비교 연산(comparison operation)은 상기 제1 값과 상기 제2 값을 비교하는, 상기 비교 연산을 수행하는 단계; 및
    상기 비교 연산의 결과의 논리 표현을 상기 메모리 어레이의 상기 감지 라인에 결합된 상기 다수의 메모리 셀들의 제3 부분에 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 제1 값의 논리 표현을 상기 감지 라인에 결합된 상기 다수의 메모리 셀들의 상기 제1 부분에 비트-벡터(bit-vector)로서 저장하는 단계를 더 포함하고, 상기 다수의 메모리 셀들의 상기 제1 부분에 각 메모리 셀은 상기 비트-벡터로부터 각각의 비트를 저장하는, 방법.
  3. 청구항 1에 있어서, 상기 감지 라인에 결합된 상기 다수의 메모리 셀들의 상기 제2 부분에 비트-벡터로서 상기 제2 값의 논리 표현을 저장하는 단계를 더 포함하고, 상기 다수의 메모리 셀들의 상기 제2 부분에 각 메모리 셀은 상기 비트-벡터로부터 각각의 비트를 저장하는, 방법.
  4. 청구항 1에 있어서, 상기 비교 연산의 결과의 상기 논리 표현을 저장하는 단계는:
    상기 비교 연산의 결과의 상기 논리 표현을 상기 감지 라인에 결합된 상기 다수의 메모리 셀들의 상기 제3 부분에 비트-벡터로서 저장하는 단계를 포함하고, 상기 다수의 메모리 셀들의 상기 제3 부분 내의 각각의 메모리 셀은 비트-벡터부터 각각의 비트를 저장하는, 방법.
  5. 청구항 4에 있어서, 상기 다수의 메모리 셀들의 상기 제3 부분 내의 상기 비트-벡터는 적어도 2 개의 비트-벡터를 포함하는, 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 비교 연산은 상기 제1 값이 상기 제2 값보다 큰지 여부를 결정하는, 방법.
  7. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 비교 연산은 상기 제2 값이 상기 제1 값보다 큰지 여부를 결정하는, 방법.
  8. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 비교 연산은 상기 제1 값이 상기 제2 값과 동일한지 여부를 결정하는, 방법.
  9. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 비교 연산은 계산 컴포넌트 및 상기 비교 연산의 결과의 상기 논리 표현을 저장하는 및 제3 개수의 메모리 셀들을 소거하는 단계를 포함하는, 방법.
  10. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 비교 연산은:
    상기 다수의 메모리 셀들의 상기 제1 부분에 저장된 비트들이 상기 다수의 메모리 셀들의 상기 제2 부분에 저장된 비트들과 동일한지를 결정하는 단계를 포함하고;
    상기 다수의 메모리 셀들의 상기 제1 부분으로부터의 대응하는 비트들은 상기 다수의 메모리 셀들의 상기 제2 부분으로부터의 대응하는 비트들과 비교되는, 방법.
  11. 청구항 10에 있어서, 상기 다수의 메모리 셀들의 상기 제1 부분에 저장된 비트들이 상기 다수의 메모리 셀들의 상기 제2 부분에 저장된 비트들과 동일한지를 결정하는 단계는:
    제2 인덱스(index)를 갖는 비트들이 동일한지 여부를 결정하기 전에, 상기 제1 값 및 상기 제2 값으로부터의 제1 인덱스를 갖는 비트들이 동일한지를 결정하는 단계를 포함하고;
    상기 제1 인덱스는 상기 제2 인덱스보다 더 상위(more significant)의 인덱스인, 방법.
  12. 장치에 있어서,
    감지 라인에 그리고 제1 개수의 선택 라인들에 결합된 제1 개수의 메모리 셀들을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 상기 제1 어드레스 공간은 제1 값을 저장할 수 있는, 상기 제1 어드레스 공간;
    상기 감지 라인에 그리고 제2 개수의 선택 라인들에 결합된 제2 개수의 메모리 셀들을 포함하는 상기 메모리 어레이의 제2 어드레스 공간으로서, 상기 제2 어드레스 공간은 제2 값을 저장할 수 있는, 상기 제2 어드레스 공간;
    상기 감지 라인에 그리고 제3 개수의 선택 라인들에 결합된 제3 개수의 메모리 셀들을 포함하는 상기 메모리 어레이의 제3 어드레스 공간으로서, 상기 제3 어드레스 공간은 비교 연산의 결과를 저장할 수 있는, 상기 제3 어드레스 공간; 및
    상기 제1 값 및 상기 제2 값을 수신하고,
    상기 제1 값을 상기 제2 값과 비교하고,
    상기 비교 연산의 결과를 상기 제3 어드레스 공간에 저장하도록 구성된 감지 회로를 포함하는, 장치.
  13. 청구항 12에 있어서, 상기 제1 값을 상기 제2 값과 비교하도록 구성된 상기 감지 회로는:
    최상위 비트에서 최하위 비트까지, 상기 제1 값의 논리 표현으로부터의 비트가 상기 제2 값의 논리 표현으로부터의 대응 비트와 동일한지 여부를 결정하도록 구성되는 상기 감지 회로를 포함하는, 장치.
  14. 청구항 13에 있어서, 상기 제1 값을 상기 제2 값과 비교하도록 구성된 상기 감지 회로는:
    상기 제1 값의 상기 논리 표현으로부터의 상기 비트가 상기 제2 값의 상기 논리 표현으로부터의 상기 대응 비트와 동일하고, 상기 제1 값의 상기 논리 표현으로부터의 모든 이전 비트들이 상기 제2 값의 상기 논리 표현으로부터의 모든 대응 비트들과 동일하다면:
    상기 제1 값이 상기 제2 값과 동일함을 나타내는 비트를 상기 제3 어드레스 공간에 저장하도록 추가로 구성되는 상기 감지 회로를 포함하는, 장치.
  15. 청구항 13에 있어서, 상기 제1 값을 상기 제2 값과 비교하도록 구성된 상기 감지 회로는:
    상기 제1 값의 상기 논리 표현으로부터의 상기 비트가 상기 제2 값의 상기 논리 표현으로부터의 상기 대응 비트와 동일하지 않다면:
    상기 제1 값의 상기 논리 표현으로부터의 상기 비트가 상기 제2 값의 상기 논리 표현으로부터의 상기 대응 비트보다 큰 지 여부를 결정하도록 추가로 구성되는 상기 감지 회로를 포함하는, 장치.
  16. 청구항 15에 있어서, 상기 제1 값을 상기 제2 값과 비교하도록 구성된 상기 감지 회로는:
    상기 제1 값의 상기 논리 표현으로부터의 상기 비트가 상기 제2 값의 상기 논리 표현으로부터의 상기 대응 비트보다 크다면;
    상기 제1 값이 상기 제2 값보다 크다는 것을 나타내는 비트를 상기 제3 어드레스 공간에 저장하도록 추가로 구성되는 상기 감지 회로를 포함하는, 장치.
  17. 청구항 15에 있어서, 상기 제1 값을 상기 제2 값과 비교하도록 구성된 상기 감지 회로는:
    상기 제2 값의 상기 논리 표현으로부터의 상기 대응 비트가 상기 제1 값의 상기 논리 표현으로부터의 상기 비트보다 크다면;
    상기 제2 값이 상기 제1 값보다 크다는 것을 나타내는 비트를 상기 제3 어드레스 공간에 저장하도록 추가로 구성되는 상기 감지 회로를 포함하는, 장치.
  18. 다수의 비교 연산들을 수행하기 위한 방법으로서,
    메모리 어레이의 다수의 감지 라인들에 결합된 메모리 셀들의 다수의 제1 부분에 저장된 다수의 제1 값들을 상기 메모리 어레이의 상기 다수의 감지 라인에 결합된 다수의 계산 컴포넌트들을 사용하여 상기 메모리 어레이의 상기 다수의 감지 라인들에 결합된 상기 다수의 메모리 셀들의 제2 부분에 저장된 다수의 제2 값들과 비교하는 단계;
    다수의 비교 연산들의 다수의 결과들을 상기 메모리 어레이의 상기 다수의 감지 라인들에 결합된 상기 메모리 셀들의 다수의 제3 부분에 저장하는 단계를 포함하고; 및
    상기 다수의 비교 연산들을 수행하기 위해 사용되는 다수의 계산들은 상기 다수의 비교 연산들 중 임의의 하나를 수행하기 위해 사용되는 다수의 계산들과 동일한, 방법.
  19. 청구항 18에 있어서, 상기 메모리 셀들의 상기 다수의 제1 부분들의 각각은 상기 다수의 감지 라인들의 상이한 감지 라인에 결합되는, 방법.
  20. 청구항 19에 있어서, 상기 메모리 셀들의 상기 다수의 제2 부분들의 각각은 상기 다수의 감지 라인들의 상이한 감지 라인에 결합되는, 방법.
  21. 청구항 20에 있어서, 상기 다수의 비교 연산들의 각각은 상기 다수의 제1 값들로부터의 각각의 제1 값이 상기 다수의 제2 값들로부터의 각각의 제2 값과 비교되는 것을 포함하고, 상기 다수의 비교 연산들의 각각의 비교 연산의 상기 제1 값 및 상기 제2 값은 상기 다수의 감지 라인들의 동일한 감지 라인에 결합된 메모리 셀들에 저장되는, 방법.
  22. 청구항 18 내지 21 중 어느 한 항에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 다수의 제1 값들의 각각으로부터 다수의 다음 최상위 비트들 및 상기 다수의 제2 값들에 저장된 대응하는 다수의 다음 최상위 비트들을 입력으로서 사용하여 제1 개수의 배타적 논리합(XOR) 연산들을 수행하는 단계를 포함하는, 방법.
  23. 청구항 22에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 제1 개수의 XOR 연산들의 다수의 결과들 및 상기 메모리 어레이의 상기 다수의 감지 라인들의 결합된 상기 메모리 셀들의 다수의 제4 부분들에 저장된 다수의 비트들을 입력으로서 사용하여 제2 개수의 XOR 연산들을 수행하는 단계를 더 포함하고,
    상기 메모리 셀들의 상기 다수의 제4 부분들은 상기 다수의 제1 값들이 상기 다수의 제2 값들과 동일하지 않은 것으로 결정되었는지의 여부를 식별하는 다수의 제1 임시 값들의 논리 표현을 저장하기 위해 사용되는, 방법.
  24. 청구항 23에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 메모리 어레이의 상기 다수의 감지 라인들에 결합된 상기 메모리 셀의 다수의 제5 부분들에 상기 제2 개수의 XOR 연산들의 다수의 결과들을 저장하는 단계를 더 포함하고;
    상기 메모리 셀들의 상기 다수의 제5 부분들은 상기 다수의 제1 값들 각각으로부터의 다수의 다음 최상위 비트들이 상기 다수의 제2 값들 각각으로부터의 대응하는 다수의 다음 최상위 비트들과 동일하지 않은지 여부를 식별하는 다수의 제2 임시 값의 논리 표현을 저장하기 위해 사용되는, 방법.
  25. 청구항 24에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는,
    상기 메모리 어레이의 상기 다수의 감지 라인들에 결합된 상기 메모리 셀들의 상기 다수의 제5 부분들에 저장된 다수의 비트들 및 상기 메모리 어레이의 상기 다수의 감지 라인들에 결합된 상기 메모리 셀들의 상기 다수의 제4 부분들에 저장된 다수의 비트들을 입력으로서 사용하여 제1 개수의 논리합(OR) 연산들을 수행하는 단계;
    상기 다수의 제1 임시 값들을 업데이트하기 위해 상기 제1 개수의 OR 연산들의 다수의 결과들을 상기 메모리 셀들의 상기 다수의 제4 부분들에 저장하는 단계를 더 포함하는, 방법.
  26. 청구항 25에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 다수의 제1 값들이 상기 다수의 제2 값들보다 더 큰지 여부를 결정하기 위해 상기 다수의 제1 값들부터의 다수의 다음 최상위 비트들 및 상기 메모리 셀들의 상기 다수의 제5 부분들에 저장된 상기 비트들을 입력으로서 사용하여 제1 개수의 논리곱(AND) 연산들을 수행하는 단계를 더 포함하는, 방법.
  27. 청구항 26에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 제1 개수의 AND 연산들의 다수의 결과들 및 상기 메모리 셀들의 상기 다수의 제3 부분들에 저장되는 다수의 비트들을 입력으로서 사용하여 제2 개수의 OR 연산들을 수행하는 단계; 및
    상기 제2 개수의 OR 연산들의 다수의 결과들을 상기 메모리 셀들의 상기 다수의 제3 부분들에 저장하는 단계를 더 포함하는, 방법.
  28. 청구항 27에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 다수의 제2 값들이 상기 다수의 제1 값들보다 큰지 여부를 결정하기 위해 상기 다수의 제2 값들로부터 다수의 다음 최상위 비트들 및 상기 메모리 셀들의 상기 다수의 제5 부분들에 저장된 상기 비트들을 입력으로서 사용하여 제2 개수의 AND 연산들을 수행하는 단계를 더 포함하는, 방법.
  29. 청구항 28에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 제2 개수의 AND 연산들의 다수의 결과들 및 상기 메모리 셀들의 상기 다수의 제3 부분들에 저장된 다른 개수의 비트들을 사용하여 제3 개수의 OR 연산들을 수행하는 단계; 및
    상기 제3 개수의 OR 연산들의 다수의 결과들을 상기 메모리 셀들의 상기 다수의 제3 부분들에 저장하는 단계를 더 포함하는, 방법.
  30. 청구항 29에 있어서, 상기 다수의 제1 값들을 상기 다수의 제2 값들과 비교하는 단계는:
    상기 제3 개수의 OR 연산들의 상기 다수의 결과들을 상기 메모리 셀들의 상기 다수의 제3 부분들에 저장하는 것이 상기 다수의 제1 값들 모두가 상기 다수의 제2 값들과 동일한 것을 나타내는 비트를 래치하는 상기 다수의 계산 컴포넌트들을 포함하면:
    상기 다수의 비교 연산들의 실행을 종료하는 단계를 더 포함하는, 방법.
KR1020177000074A 2014-06-05 2015-06-02 메모리에서 비교 연산 KR101955126B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462008007P 2014-06-05 2014-06-05
US62/008,007 2014-06-05
US14/715,001 2015-05-18
US14/715,001 US9496023B2 (en) 2014-06-05 2015-05-18 Comparison operations on logical representations of values in memory
PCT/US2015/033655 WO2015187609A2 (en) 2014-06-05 2015-06-02 Comparison operations in memory

Publications (2)

Publication Number Publication Date
KR20170016918A true KR20170016918A (ko) 2017-02-14
KR101955126B1 KR101955126B1 (ko) 2019-03-06

Family

ID=54767555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177000074A KR101955126B1 (ko) 2014-06-05 2015-06-02 메모리에서 비교 연산

Country Status (6)

Country Link
US (5) US9496023B2 (ko)
EP (1) EP3167448B1 (ko)
KR (1) KR101955126B1 (ko)
CN (1) CN107004433B (ko)
TW (1) TWI570715B (ko)
WO (1) WO2015187609A2 (ko)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
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
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) * 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US9997232B2 (en) * 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
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
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
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
US9640250B1 (en) 2016-05-16 2017-05-02 Qualcomm Incorporated Efficient compare operation
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
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
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
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
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10074436B1 (en) * 2017-06-13 2018-09-11 Winbound Electronics Corp. Memory device and data reading method thereof
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
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
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
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several 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
CN109766309B (zh) * 2018-12-29 2020-07-28 北京航空航天大学 自旋存算一体芯片
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
US11152054B2 (en) * 2019-08-28 2021-10-19 Micron Technology, Inc. Apparatuses and methods for performing background operations in memory using sensing circuitry
US11934824B2 (en) 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11693657B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems
US11829729B2 (en) 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
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
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems
US11403111B2 (en) 2020-07-17 2022-08-02 Micron Technology, Inc. Reconfigurable processing-in-memory logic using look-up tables
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory
US11355170B1 (en) 2020-12-16 2022-06-07 Micron Technology, Inc. Reconfigurable processing-in-memory logic
CN116129973A (zh) * 2021-11-15 2023-05-16 长鑫存储技术有限公司 一种存内计算方法及电路、半导体存储器和存储结构
CN115113846B (zh) * 2022-08-31 2022-12-06 之江实验室 一种全加器电路和多位全加器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276643A (en) * 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit

Family Cites Families (273)

* 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
JPH0831168B2 (ja) 1987-11-06 1996-03-27 沖電気工業株式会社 窓口用自動取引装置
US4843264A (en) 1987-11-25 1989-06-27 Visic, Inc. Dynamic sense amplifier for CMOS static RAM
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
JP3361825B2 (ja) 1990-08-22 2003-01-07 テキサス インスツルメンツ インコーポレイテツド メモリ・アレイ・アーキテクチャ
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 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
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 주식회사 하이닉스반도체 고속동작용디램
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
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
CA2273122A1 (en) * 1999-05-26 2000-11-26 Gershom Birk Multilevel dram with local reference generation
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
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US7028170B2 (en) 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
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
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory 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
US6731542B1 (en) 2002-12-05 2004-05-04 Advanced Micro Devices, Inc. Circuit for accurate memory read operations
KR100546307B1 (ko) 2002-12-05 2006-01-26 삼성전자주식회사 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃
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
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
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
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
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
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
JP4322686B2 (ja) * 2004-01-07 2009-09-02 株式会社東芝 不揮発性半導体記憶装置
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
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
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
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
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
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
US7958181B2 (en) 2006-09-21 2011-06-07 Intel Corporation Method and apparatus for performing logical compare operations
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 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US7787282B2 (en) * 2008-03-21 2010-08-31 Micron Technology, Inc. Sensing resistance variable memory
JP2009245503A (ja) * 2008-03-31 2009-10-22 Nec Electronics Corp 半導体記憶装置
US20090254694A1 (en) 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US8332580B2 (en) 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
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
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
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
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
CN101968970B (zh) * 2009-07-28 2014-10-08 慧国(上海)软件科技有限公司 资料读取的方法及资料储存装置
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
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
KR20110128047A (ko) * 2010-05-20 2011-11-28 삼성전자주식회사 3차원 적층 구조를 갖는 반도체 장치 및 데이터 디스큐잉 방법
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
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
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
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 英特尔公司 用于提供向量横向比较功能的指令和逻辑
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
US20140108480A1 (en) 2011-12-22 2014-04-17 Elmoustapha Ould-Ahmed-Vall Apparatus and method for vector compute and accumulate
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
US20140140124A1 (en) * 2012-11-21 2014-05-22 Dong-seok Kang Resistive memory device having selective sensing operation and access control method thereof
US9013930B2 (en) * 2012-12-20 2015-04-21 Winbond Electronics Corp. Memory device with interleaved high-speed reading function and method thereof
US8934278B2 (en) * 2012-12-28 2015-01-13 Qualcomm Incorporated Hybrid ternary content addressable memory
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
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
KR102121331B1 (ko) * 2013-10-28 2020-06-11 에스케이하이닉스 주식회사 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US9449675B2 (en) * 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) * 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276643A (en) * 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit

Also Published As

Publication number Publication date
US20200082871A1 (en) 2020-03-12
US20150357019A1 (en) 2015-12-10
US11967361B2 (en) 2024-04-23
EP3167448B1 (en) 2020-11-25
US20170053693A1 (en) 2017-02-23
US11238920B2 (en) 2022-02-01
KR101955126B1 (ko) 2019-03-06
US20210065778A1 (en) 2021-03-04
TW201614650A (en) 2016-04-16
US10839892B2 (en) 2020-11-17
US20220157370A1 (en) 2022-05-19
US10490257B2 (en) 2019-11-26
WO2015187609A2 (en) 2015-12-10
US9496023B2 (en) 2016-11-15
WO2015187609A3 (en) 2017-04-06
EP3167448A2 (en) 2017-05-17
TWI570715B (zh) 2017-02-11
CN107004433A (zh) 2017-08-01
CN107004433B (zh) 2020-08-28
EP3167448A4 (en) 2018-03-21

Similar Documents

Publication Publication Date Title
KR101955126B1 (ko) 메모리에서 비교 연산
US11205497B2 (en) Comparison operations in memory
US9940985B2 (en) Comparison operations in memory
US9740607B2 (en) Swap operations in memory
KR101862956B1 (ko) 메모리에 대한 나눗셈 연산들
EP3127120B1 (en) Apparatuses and methods for comparing data patterns in memory
US9697876B1 (en) Vertical bit vector shift in memory
US9747961B2 (en) Division operations in memory
US20160266873A1 (en) Division operations on variable length elements in memory
US10014034B2 (en) Shifting data in sensing circuitry
WO2016144951A1 (en) Data shift by elements of a vector in memory
WO2015187771A2 (en) Apparatuses and methods for performing an exclusive or operation using sensing circuitry
WO2016036599A1 (en) Multiplication operations in memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant