KR101862956B1 - 메모리에 대한 나눗셈 연산들 - Google Patents

메모리에 대한 나눗셈 연산들 Download PDF

Info

Publication number
KR101862956B1
KR101862956B1 KR1020167014823A KR20167014823A KR101862956B1 KR 101862956 B1 KR101862956 B1 KR 101862956B1 KR 1020167014823 A KR1020167014823 A KR 1020167014823A KR 20167014823 A KR20167014823 A KR 20167014823A KR 101862956 B1 KR101862956 B1 KR 101862956B1
Authority
KR
South Korea
Prior art keywords
value
memory cells
divisor
memory
sense
Prior art date
Application number
KR1020167014823A
Other languages
English (en)
Other versions
KR20160082590A (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 KR20160082590A publication Critical patent/KR20160082590A/ko
Application granted granted Critical
Publication of KR101862956B1 publication Critical patent/KR101862956B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5353Restoring division

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

본 발명의 예들은 메모리에서 나눗셈 연산들을 수행하기 위한 장치들 및 방법들을 제공한다. 예시적인 장치는 감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 제1 어드레스 공간을 포함하고, 여기서 제1 어드레스 공간은 피제수 값을 저장한다. 제2 어드레스 공간은 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하고, 여기서 제2 어드레스 공간은 제수 값을 저장한다. 제3 어드레스 공간은 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하고, 여기서 제3 어드레스 공간은 나머지 값을 저장한다. 감지 회로는 피제수 값 및 제수 값을 수신하고, 피제수 값을 제수 값으로 나누며, 나머지 결과를 제3 다수의 메모리 셀에 저장하도록 구성될 수 있다.

Description

메모리에 대한 나눗셈 연산들{DIVISION OPERATIONS FOR MEMORY}
본 발명은 일반적으로 반도체 메모리 장치들 및 방법들, 그리고 보다 상세하게는, 메모리에 대한 나눗셈 연산들과 관련된 장치들 및 방법들에 관한 것이다.
메모리 디바이스들은 전형적으로, 컴퓨터들 또는 다른 전자 시스템들 내의 내부적, 반도체, 집적 회로들로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함하여 많은 상이한 유형의 메모리가 존재한다. 휘발성 메모리는 이의 데이터(예를 들어, 호스트 데이터, 에러 데이터 등)를 유지하기 위해 전력을 필요로 할 수 있고 다른 것들 중에서도, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 및 사이리스터 랜덤 액세스 메모리(TRAM)를 포함한다. 비-휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영속적 데이터를 제공할 수 있고 다른 것들 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, 및 가변 저항 메모리 이를테면 상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기저항식 랜덤 액세스 메모리(MRAM), 이를테면 스핀 토크 전달 랜덤 액세스 메모리(STT RAM)를 포함할 수 있다.
전자 시스템들은 보통 다수의 프로세싱 자원(예를 들어, 하나 이상의 프로세서)을 포함하며, 이들은 명령들을 검색 및 실행하고 실행된 명령들의 결과들을 적절한 위치에 저장할 수 있다. 프로세서는 다수의 기능 단위(예를 들어, 본 출원에서 기능 단위 회로(FUC) 이를테면 예를 들어, 산술 논리 장치(ALU) 회로, 부동 소수점 장치(FPU) 회로, 및/또는 조합적 논리 블록을 포함할 수 있으며, 이는 데이터(예를 들어, 하나 이상의 피연산자)에 대해 논리 연산들 이를테면 AND, OR, NOT, NAND, NOR, 및 XOR 논리 연산들을 수행함으로써 명령들을 수행하기 위해 사용될 수 있다.
전자 시스템에서의 다수의 구성요소는 실행을 위해 FUC에 명령들을 제공하는 것에 수반될 수 있다. 명령들은 예를 들어, 프로세싱 자원 이를테면 제어기 및/또는 호스트 프로세서에 의해, 생성될 수 있다. 데이터(예를 들어, 명령들이 실행될 피연사자들)는 FUC에 의해 액세스가능한 메모리 어레이에 저장될 수 있다. 명령들 및/또는 데이터는 메모리 어레이에서 검색될 수 있고 FUC가 데이터에 대해 명령들을 실행하기 시작하기 전 시퀀싱 및/또는 버퍼링될 수 있다. 뿐만 아니라, 상이한 유형들의 연산들이 FUC를 통해 하나 또는 다수의 클록 사이클로 실행될 수 있기 때문에, 명령들 및/또는 데이터의 중간 결과들이 또한 시퀀싱 및/또는 버퍼링될 수 있다.
많은 경우, 프로세싱 자원들(예를 들어, 프로세서 및/또는 관련 FUC)은 메모리 어레이의 외부에 있을 수 있고, 데이터는 (명령들을 실행하기 위해) 프로세싱 자원들 및 메모리 어레이 간 버스를 통해 액세스될 수 있다. 데이터는 메모리 어레이로부터 버스를 통해 메모리 어레이 외부의 레지스터들로 이동될 수 있다.
도 1은 본 발명의 다수의 실시예에 따른 메모리 디바이스를 포함하는 컴퓨팅 시스템의 형태로 된 장치의 블록도이다.
도 2a는 본 발명의 다수의 실시예에 따른 메모리 어레이의 일부분의 개략도를 예시한다.
도 2b는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도를 예시한다.
도 2c-1 및 도 2c-2는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도들을 예시한다.
도 2d-1 및 도 2d-2는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도들을 예시한다.
도 3a는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3b는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3c는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3d는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3e는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3f는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3g는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3h는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3i는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3j는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3k는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
본 발명은 메모리에 대한 나눗셈 연산들에 관한 장치들 및 방법들을 포함한다. 비트-벡터에(예를 들어, 메모리 어레이에) 저장가능한 논리 값들의 예는 감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 메모리 셀들을 포함하는 제1 어드레스 공간을 포함한다. 제1 어드레스 공간의 메모리 셀들은 피제수 값을 저장할 수 있다. 제2 어드레스 공간은 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 메모리 셀들을 포함한다. 제2 어드레스 공간의 메모리 셀들은 제수 값을 저장할 수 있다. 나눗셈 연산의 결과들은 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 메모리 셀들을 포함하는 제3 어드레스 공간에 저장된다. 제3 어드레스 공간의 메모리 셀들은 몫 값을 저장할 수 있다. 제4 어드레스 공간은 감지 라인에 그리고 제4 다수의 선택 라인에 연결되는 메모리 셀들을 포함한다. 제4 어드레스 공간의 메모리 셀들은 나머지 값을 저장할 수 있다.
본 출원에서 사용될 때, 피제수 값은 나눗셈 연산에서 나눠질 수치 값이다. 제수 값은 나눗셈 연산에서 피제수 값을 나누는 값이다. 나눗셈 연산의 결과들은 몫 값 및 나머지 값일 수 있다. 몫 값은 제수 값이 피제수 값을 나눌 수 있는 전체 회수를 나타낼 수 있다. 나머지 값은 제수 값기 피제수 값을 나눌 수 있는 전체 회수로부터의 나머지를 나타낼 수 있다. 예를 들어, 피제수 값이 11이고 제수 값이 5라면, 제수 값(예를 들어, 5)에 의해 피제수 값(예를 들어, 11)을 나눈 결과들은 2의 몫 값 및 1의 나머지 값이다.
본 발명의 다수의 실시예는 이접 접근법들에 비해 다수의 나눗셈 연산(예를 들어, 나눗셈 함수)을 수행하는 것에 수반되는 계산들의 수 및 시간의 감소를 제공할 수 있다. 계산들 및 시간은 나눗셈 연산들의 수가 병렬적으로(예를 들어, 동시에) 수행될 수 있기 때문에 감소될 수 있다. 다수의 나눗셈 연산을 병렬적으로 수행하는 것은 다수의 나눗셈 연산을 수행하는 것에 수반되는 계산들을 감소시킬 수 있다. 다수의 나눗셈 연산을 병렬적으로 수행하는 것은 또한 다수의 계산을 수행하는 것에 있어서의 전력 소모를 감소시킬 수 있다. 예를 들어, 다수의 실시예는 논리적으로(예를 들어, 메모리 어레이에서의 다수의 메모리에 바이너리 형태로) 저장되는 데이터(예를 들어, 피제수 값 및 제수 값)를 사용하여 나눗셈 기능을 수행하기 위해 제공될 수 있다. 실시예는 버스(예를 들어, 데이터 버스, 어드레스 버스, 제어 버스 등)를 통해 메모리 어레이 및/또는 감지 회로의 외부에 데이터를 전달하지 않고 나눗셈 기능을 수행할 수 있다. 나눗셈 기능은 다수의 논리 연산(예를 들어, AND, NOT, NOR, NAND, XOR 등)을 수행하는 것을 수반할 수 있다. 그러나, 실시예들은 이들 예에 제한되지 않는다.
이전 접근법들에서, 데이터(예를 들어, 피제수 값 및 제수 값)는 어레이 및 감지 회로로부터 (예를 들어, 입력/출력(I/O) 라인들을 포함하는 버스를 통해) 적절한 논리 연산들을 수행하도록 구성되는 ALU 회로 및/또는 다른 기능 단위 회로를 포함할 수 있는, 프로세싱 자원 이를테면 프로세서, 마이크로프로세서, 및/또는 컴퓨팅 엔진에 의해 사용될 수 있는 다수의 레지스터로 전달될 수 있다. 그러나, 단지 단일 피제수 값 및 단일 제수 값이 단일 나눗셈 연산(예를 들어, 나눗셈 연산)을 수행하기 위해 ALU 회로에 의해 사용될 수 있다. 데이터를 레지스터로부터/에 버스를 통해 메모리에/로부터 전달하는 것은 상당한 전력 소모 및 시간 요건을 수반할 수 있다. 프로세싱 자원이 메모리 어레이와 동일한 칩 상에 위치되더라도, 데이터를 컴퓨팅 회로로 어레이의 외부에 이동시키는 것에 있어서 상당한 전력이 소모될 수 있으며, 이는 데이터를 감지 라인들로부터 I/O 라인들로 전달하기 위해 감지 라인 어드레스 액세스(예를 들어, 컬럼 디코드 신호의 점호(firing))를 수행하는 것을 수반하여, 데이터를 어레이 주변부로 이동시키고, 데이터를 예를 들어, 나눗셈 기능과 연관된 레지스터에 제공할 수 있다.
본 발명의 이하의 상세한 설명에서, 상세한 설명의 일부를 형성하고, 본 발명의 하나 이상의 실시예가 실시될 수 있는 양태가 예로서 도시된, 첨부 도면들이 참조된다. 이들 실시예는 해당 기술분야에서의 통상의 기술자들이 본 발명의 실시예들을 실시하게 하기 위해 충분히 상세하게 설명되며, 그리고 다른 실시예들이 활용될 수 있으며 해당 프로세스, 전기적, 및 구조적 변경들이 본 발명의 범위를 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 본 출원에서 사용될 때, 특히 도면들에서의 참조 부호들에 대해, 지정자 "N"은 그렇게 지정된 다수의 특정한 피처가 포함될 수 있다는 것을 나타낸다. 본 출원에서 사용될 때, "다수의" 특정한 것은 그러한 것들 중 하나 이상을 지칭할 수 있다(예를 들어, 다수의 메모리 어레이는 하나 이상의 메모리 어레이를 지칭할 수 있다).
본 출원에서의 도면들은 첫번째 숫자 또는 숫자들이 도시된 도면 번호에 대응하고 나머지 숫자들이 도면에서의 요소 또는 구성요소를 식별하는 넘버링 관례에 따른다. 상이한 도면들간 유사한 요소들 또는 구성요소들은 유사한 숫자들의 사용에 의해 식별될 수 있다. 예를 들어, 204는 도 2a에서 참조 요소 "04" 일 수 있고, 유사한 요소는 도 3a에서 304로 참조될 수 있다. 인식될 바와 같이, 본 출원에서의 다양한 실시예에 도시된 요소들은 본 발명의 다수의 추가적인 실시예를 제공하기 위해 추가, 교환, 및/또는 제거될 수 있다. 덧붙여, 인식될 바와 같이, 도면들에 제공된 요소들의 비율 및 상대 축적은 본 발명의 특정한 실시예들을 예시하도록 의도되고 제한적인 의미로 취해져서는 안 된다.
도 1은 본 발명의 다수의 실시예에 따른 메모리 디바이스(160)를 포함하는 컴퓨팅 시스템(100)의 형태로 된 장치의 블록도이다. 본 출원에서 사용될 때, 메모리 디바이스(160), 메모리 어레이(130), 및/또는 감지 회로(150)는 또한 "장치"로서 별도로 간주될 수 있다.
시스템(100)은 메모리 어레이(130)를 포함하는, 메모리 디바이스(160)에 연결되는 호스트(110)를 포함한다. 호스트(110)는 호스트 시스템 이를테면 다양한 다른 유형의 호스트들 중에서도, 개인 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 전화, 또는 메모리 카드 리더기일 수 있다. 호스트(110)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있고 다수의 프로세싱 자원(예를 들어, 하나 이상의 프로세서, 마이크로프로세서, 또는 몇몇 다른 유형의 제어 회로)를 포함할 수 있다. 시스템(100)은 별개 집적 회로들을 포함할 수 있거나 호스트(110) 및 메모리 디바이스(160) 양자는 동일한 집적 회로 상에 있을 수 있다. 시스템(100)은 예를 들어, 서버 시스템 및/또는 높은 성능 컴퓨팅(HPC) 시스템 및/또는 이의 부분일 수 있다. 도 1에 도시된 예가 폰 노이만(Von Neumann) 아키텍처를 갖는 시스템을 예시하지만, 본 발명의 실시예들은, 보통 폰 노이만 아키텍처와 연관된 하나 이상의 구성요소(예를 들어, CPU, ALU 등)를 포함하지 않을 수 있는, 비-폰 노이만 아키텍처들(예를 들어, 튜링 기계)로 구현될 수 있다.
명확성을 위해, 시스템(100)은 본 발명과의 특정한 관련성을 갖는 피처들에 중점을 두기 위해 간략화되었다. 메모리 어레이(130)는 예를 들어, DRAM 어레이, SRAM 어레이, STT RAM 어레이, PCRAM 어레이, TRAM 어레이, RRAM 어레이, NAND 플래시 어레이, 및/또는 NOR 플레시 어레이일 수 있다. 어레이(130)는 선택 라인들(본 출원에서 워드 라인들 또는 액세스 라인들로서 지칭될 수 있는)에 의해 로우들 및 감지 라인들(본 출원에서 디지트 라인들 또는 데이터 라인들로서 지칭될 수 있는)에 의해 컬럼들로 배열되는 메모리 셀들을 포함할 수 있다. 단일 어레이(130)가 도 1에 도시되지만, 제한들은 그렇게 제한되지 않는다. 예를 들어, 메모리 디바이스(160)는 다수의 어레이(130)(예를 들어, DRAM 셀들의 다수의 뱅크)를 포함할 수 있다. 예시적인 DRAM 어레이는 도 2a와 연관하여 설명된다.
메모리 디바이스(160)는 I/O 버스(156)(예를 들어, 데이터 버스)를 거쳐 I/O 회로(144)를 통해 제공되는 어드레스 신호들을 래치하기 위한 어드레스 회로(142)를 포함한다. 어드레스 신호들은 메모리 어레이(130)에 액세스하기 위해 로우 디코더(146) 및 컬럼 디코더(152)에 의해 수신 및 디코딩된다. 다수의 예에서, 어드레스 신호들은 보다 많거나 또는 보다 적은 로우 디코더에 의해 디코딩될 수 있다. 예를 들어, 메모리 디바이스는 세 개의 로우 디코더를 포함할 수 있다. 본 출원에서 사용될 때, 로우 디코더는 선택 디코더로서 지칭될 수 있다. 데이터는 감지 회로(150)를 사용하여 감지 라인들 상의 전압 및/또는 전류 변화들을 감지함으로써 메모리 어레이(130)로부터 판독될 수 있다. 감지 회로(150)는 메모리 어레이(130)로부터의 데이터의 페이지(예를 들어, 로우)를 판독 및 래치할 수 있다. I/O 회로(144)는 I/O 버스(156)를 통한 호스트(110)와의 양-방향 데이터 통신을 위해 사용될 수 있다. 기록 회로(148)는 메모리 어레이(130)에 데이터를 기록하기 위해 사용된다.
다수의 예에서, 용어 디코딩은 사전-디코딩, 최종-디코딩, 및/또는 로우 디코더(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 내지 도 3k와 연관하여 아래에서 더 설명된다. 예를 들어, 다수의 실시예에서, 감지 회로(150)는 다수의 감지 증폭기 및 누산기를 포함할 수 있고 (예를 들어, 상보적 감지 라인들과 연관된 데이터에 대해) 논리 연산들을 수행하기 위해 사용될 수 있는, 다수의 컴퓨팅 구성요소를 포함할 수 있다. 다수의 실시예에서, 감지 회로(예를 들어, 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))에 의해 연결되는 로우들 및 라인들(예를 들어, 디지트 라인들)(205-0(D) 및 205-1(D_))에 의해 연결되는 컬럼들로 배열된다. 다수의 실시예에서, 어레이(230)는 별개 회로에 연결되는 어드레스 공간들을 포함할 수 있다.
이러한 예에서, 셀들의 각 컬럼은 상보적 감지 라인들의 쌍(205-0 (D) 및 205-1 (D_))과 연관된다. 단지 메모리 셀들(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)에 연결되는 메모리 셀들(270)은 비트들을 저장할 수 있다. 비트들은 값 및/또는 다수의 값의 논리 표현(예를 들어, 피제수 값, 제수 값, 몫 값, 및/또는 나머지 값)을 나타낼 수 있다. 예를 들어, 피제수 값은 메모리 셀(270-0), 메모리 셀(270-1), 메모리 셀(270-2), 및 메모리 셀(270-3)에 저장될 수 있는 네 개의 비트-벡터에 의해 표현될 수 있다. 다수의 예에서, 비트-벡터는 도 2a 및 도 3a 내지 도 3k에서 사용되는 비트들보다 많거나 또는 보다 적은 비트에 의해 표현될 수 있다. 예를 들어, 피제수 값은 다른 비트-벡터 크기들 중에서도, 8 비트-벡터, 16 비트-벡터, 및/또는 32 비트-벡터에 의해 표현될 수 있다. 다수의 예에서, 값의 각 비트-벡터 표현은 선택 라인들(204)을 따라 수평적으로와는 대조적으로 감지 라인들(205)을 따라 수직적으로 저장될 수 있다.
값의 각 비트-벡터 논리 표현은 인덱싱될 수 있다. 예를 들어, 메모리 셀(270-0)에 저장된 비트는 제1 인덱스와 연관될 수 있고, 메모리 셀(270-1)에 저장된 비트는 제2 인덱스와 연관될 수 있고, 메모리 셀(270-2)에 저장된 비트는 제3 인덱스와 연관될 수 있으며, 메모리 셀(270-3)에 저장된 비트는 제4 인덱스와 연관될 수 있다. 예로서, 제1 인덱스는 저장된 비트-벡터의 최대 유효 비트(MSB; most significant bit)를 나타낼 수 있고 제4 인덱스는 저장된 비트-벡터의 최소 유효 비트(LSB; least significant bit)를 나타낼 수 있다. 도 2a와 연관하여 사용되는 인덱싱은 지시사이고 제한하는 것이 아니다. 다수의 실시예에서 다른 인덱싱 시스템들 및/또는 순서들이 채용될 수 있다. 예를 들어, 메모리(270-3)에 저장된 비트는 제1 인덱스와 연관될 수 있고, 메모리 셀(270-2)에 저장된 비트는 제2 인덱스와 연관될 수 있고, 메모리 셀(270-1)에 저장된 비트는 제3 인덱스와 연관될 수 있으며, 메모리 셀(270-0)에 저장된 비트는 제4 인덱스와 연관될 수 있다. 뿐만 아니라, 본 출원에서 설명되는 연산들은 다수의 상이한 레이아웃 및/또는 메모리 셀 배향을 사용하여 수행될 수 있다.
다수의 값은 메모리 어레이(230)의 감지 라인들의 각각에 저장될 수 있다. 예를 들어, 메모리 셀들(270-0, 270-1, 270-2, 270-3)은 제1 피제수 값을 나타내는 다수의 비트를 저장할 수 있고, 메모리 셀들(270-4, 270-5, 270-6, 270-7)은 제1 제수 값을 나타내는 다수의 비트를 저장할 수 있고, 메모리 셀들(270-8, 270-9, 270-10, 270-11)은 제1 몫 값을 나타내는 다수의 비트를 저장할 수 있으며, 메모리 셀들(270-12, 270-13, 270-14, 270-15)은 제1 나머지 값을 나타내는 다수의 비트를 저장할 수 있다(예를 들어, 메모리 셀들(270-3) 내지 메모리 셀들(270-15)은 도 2a에 예시되지 않는다). 메모리 셀들(270-0 내지 270-15)은 제1 감지 라인에 연결될 수 있다. 상이한 감지 라인에 연결되는 메모리 셀들은 제2 피제수 값, 제2 제수 값, 제2 몫 값, 및/또는 제2 나머지 값을 나타내는 다수의 비트를 저장할 수 있다.
다수의 예에서, 선택 라인(204-0)에 그리고 다수의 감지 라인(예를 들어, 감지 라인(205-0) 및 감지 라인(205-1))에 연결되는 메모리 셀들은 병렬적으로 활성화될 수 있다. 뿐만 아니라, 메모리 셀(270-0), 메모리 셀(270-1), 메모리 셀(270-2), 메모리 셀(270-3)은 또한 병렬적으로 활성화될 수 있다. 다수의 예에서, 독립적으로 어드레싱된 선택 라인들(204) 및/또는 감지 라인들(205)은 다수의 메모리 셀을 병렬적으로 활성화하기 위해 병렬적으로 활성화될 수 있다.
감지 회로는 감지 증폭기(206) 및 컴퓨팅 구성요소(231)를 포함한다. 감지 회로는 도 1에 도시된 감지 회로(150)일 수 있다. 감지 증폭기(206)는 메모리 셀들의 특정한 컬럼에 대응하는 상보적 감지 라인들(D, D_)에 연결된다. 감지 증폭기(206)는 선택된 셀(예를 들어, 메모리 셀들(270))에 저장된 상태(예를 들어, 논리 데이터 값)를 결정하도록 작동될 수 있다. 실시예들은 예시적인 감지 증폭기(206)에 제한되지 않는다. 예를 들어, 본 출원에서 설명되는 다수의 실시예에 따른 감지 회로는 전류-모드 감지 증폭기들 및/또는 단일-종단된 감지 증폭기들(예를 들어, 하나의 감지 라인에 연결되는 감지 증폭기들)을 포함할 수 있다.
다수의 실시예에서, 컴퓨팅 구성요소(예를 들어, 231)는 어레이(예를 들어, 230)의 메모리 셀들(270) 및/또는 감지 증폭기(예를 들어, 206)의 트랜지스터들과 가장 좋은 상태로(on pitch) 형성되는 다수의 트랜지스터를 포함할 수 있으며, 이는 특정한 피처 사이즈(예를 들어, 4F2, 6F2 등)에 따를 수 있다. 아래에 더 설명될 바와 같이, 컴퓨팅 구성요소(231)는 감지 증폭기(206)와 함께, 입력으로서 어레이(230)에서의 메모리 셀들(270)로부터의 데이터를 사용하여 나눗셈 연산을 수행하고 결과를 감지 라인 어드레스 액세스를 통해 데이터를 전달하지 않고(예를 들어, 데이터가 로컬 I/O 라인들을 통해 어레이 및 감지 회로로부터 외부의 회로에 전달되도록 컬럼 디코드 신호를 점호하지 않고) 어레이(230)에서의 메모리 셀들(270)에 다시 저장하도록 작동할 수 있다. 이와 같이, 본 발명의 다수의 실시예는 다양한 이전 접근법보다 적은 전력을 사용하여 나눗셈 연산 및 이와 연관된 계산들을 수행하는 것을 가능하게 할 수 있다. 추가적으로, 다수의 실시예가 컴퓨팅 기능들을 수행하기 위해 로컬 I/O 라인들을 거쳐 데이터를 전달할 필요를 제거하기 때문에, 다수의 실시예는 이전 접근법들과 비교해서 컴퓨팅 구성요소들(예를 들어, 231) 및 메모리 셀들(270)을 사용하여 증가된 병렬 프로세싱 능력을 가능하게 할 수 있다.
도 2a에 예시된 예에서, 컴퓨팅 구성요소(231)에 대응하는 회로는 감지 라인들(D 및 D_)의 각각에 연결되는 다섯 개의 트랜지스터를 포함하나; 실시예들은 이러한 예에 제한되지 않는다. 트랜지스터들(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)을 포함하는 교차 연결된 래치는 보조 래지로서 지칭될 수 있다(감지 증폭기(206)에 대응하는 교차 연결된 래치는 본 출원에서 주요 래치로서 지칭될 수 있다).
트랜지스터들(207-1 및 207-2)은 패스 트랜지스터들로서 지칭될 수 있으며, 이들은 각각의 감지 라인들(D 및 D_) 상의 전압들 또는 전류들을 트랜지스터들(208-1, 208-2, 209-1, 및 209-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-1)(Accum)에 공통적으로 연결된다. Accum 신호(212-2)는 공급 전압(예를 들어, Vcc)일 수 있고 Accumb 신호는 기준 전압(예를 들어, 접지)일 수 있다. 이네이블링 신호들(212-1 및 212-2)은 보조 래치에 대응하는 트랜지스터들(208-1, 208-2, 209-1, 및 209-2)을 포함하는 교차 연결된 래치를 활성화한다. 활성화된 감지 증폭기 쌍은 노드(217-1)가 Accum 신호 전압 및 Accumb 신호 전압 중 하나로(예를 들어, Vcc 및 접지 중 하나로) 유도되고, 노드(217-2)가 Accum 신호 전압 및 Accumb 신호 전압 중 다른 하나로 유도되도록 공통 노드(217-1) 및 공통 노드(217-2) 간 차동 전압을 증폭하도록 작동한다. 아래에 더 설명될 때, 보조 래치가 논리 연산(예를 들어, 나눗셈 연산)을 수행하기 위해 사용되면서 누산기로서의 역할을 하기 때문에, 신호들(212-1 및 212-2)은 “Accum” 및 “Accumb”로 라벨링된다. 다수의 실시예에서, 누산기는 보조 래치를 형성하는 교차 연결된 트랜지스터(208-1, 208-2, 209-1, 및 209-2)뿐만 아니라 패스 트랜지스터들(207-1 및 208-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)의 제1 소스/드레인 영역이 또한 연결되는 공통 노드(217-1)에 연결된다. 상보적 방식으로, 트랜지스터(216-2)의 게이트는 트랜지스터(208-1)의 게이트, 트랜지스터(209-1)의 게이트, 및 트랜지스터(208-2)의 제1 소스/드레인 영역이 또한 연결되는 공통 노드(217-2)에 연결된다. 이와 같이, 이네이블링 신호(InvD)는 보조 래치에 저장된 데이터 값을 반전시키게 하고 반전된 값을 감지 라인들(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 부분은 제1 다수의 메모리 셀을 포함할 수 있다. 제2 부분은 제2 다수의 메모리 셀을 포함할 수 있다. 나눗셈 연산의 중간 결과는 감지 라인(205-0)에 연결되는 메모리 셀의 제3 부분 및 제4 부분에 저장될 수 있다.
나눗셈 연산은 피제수 값을 저장하는 메모리 셀들(270-0 내지 270-3)에 저장된 비트들을 나머지 값을 저장하는 메모리 셀들(270-12 내지 270-15) 중 메모리 셀(270-12)로 복사하는 것을 포함할 수 있다. 메모리 셀들(270-0 내지 270-3)에 저장된 비트들이 메모리 셀(270-12)에 연속하여(예를 들어, 하나씩) 복사될 수 있다. 메모리 셀들(270-0 내지 270-3)에 저장된 비트들은 이들이 메모리 셀들(270-0 내지 270-3)에 저장되는 순서와 비교해서 역순으로 복사될 수 있다. 예를 들어, 메모리 셀(270-3)에 저장된 비트는 메모리 셀(270-2)에 저장된 비트가 메모리 셀(270-12)에 복사되기 전 메모리 셀(270-12)에 복사될 수 있다.
다수의 예에서, 메모리 셀(270-0 내지 270-3)에 저장된 비트들은 나머지 비트 벡터의 제1 인덱스와 연관된 메모리 셀에 복사될 수 있다. 메모리 셀(270-12)는 나머지 비트-벡터의 제1 비트를 저장할 수 있기 때문에, 메모리 셀(270-12)은 나머지 비트-벡터의 제1 인덱스와 연관된다. 예를 들어, 5와 동등한 나머지 값은 비트-벡터 [0101]에 의해 표현될 수 있다. 비트-벡터는 메모리 셀들(270-12 내지 270-15)에 저장될 수 있다. 비트-벡터 [0101]의 제1 비트는 1과 동등할 수 있고 제1 인덱스와 연관된 메모리 셀(270-12)에 저장될 수 있다. 비트-벡터 [0101]의 제1 비트는 0과 동등할 수 있고 제2 인덱스와 연관된 메모리 셀(270-13)에 저장될 수 있다. 제3 인덱스와 연관된 메모리 셀(270-14)은 1과 동등할 수 있다. 제4 인덱스와 연관된 메모리 셀(270-15)은 0과 동등할 수 있다.
나눗셈 연산은 계산들의 반복들로 나눠질 수 있다. 본 출원에서 사용될 때, 계산들은 나눗셈 연산을 수행하는 것에 수반되는 계산 연산들을 설명할 수 있다. 예를 들어, 다른 계산들 중에서도, 복사 연산이 계산일 수 있고/거나 추가 연산이 계산일 수 있다. 나눗셈 연산의 반복은 피제수 값의 비트들 중 하나가 나머지 비트-벡터의 제1 인덱스와 연관된 메모리 셀에 복사될 때마다 시작될 수 있다.
마스크는 비트가 나머지 비트-벡터의 제1 인덱스와 연관된 메모리 셀에 복사될 때마다 생성될 수 있다. 마스크는 제수 값이 대응하는 나머지 값 이하인지를 나타낼 수 있다. 제수 값이 나머지 값 이하이면, 마스크의 대응하는 비트는 1과 동등한 값으로 설정될 수 있고 제수 값은 나머지 값에서 감산될 수 있고 나머지 값을 업데이트하기 위해, 나머지 비트 벡터의 제1 인덱스와 연관된 메모리 셀에 복사되는 비트가 반복될 피제수 값의 마지막 비트가 아닌 경우, 감산의 결과의 논리 표현(예를 들어, 비트-벡터)이 저장 및 시프트될 수 있으며, 몫 값의 논리 표현(예를 들어, 비트 벡터)이 하나씩 증분될 수 있다. 제수 값이 나머지 값보다 크다면, 마스크의 대응하는 비트는 0으로 설정되고 몫 값의 논리 표현 및 나머지 값의 논리 표현이 각각, 몫 값 및 나머지 값을 업데이트하기 위해 시프트될 수 있다. 시프팅은 도 3a 내지 도 3k에 관하여 더 설명될 것이다. 상기 나눗셈 연산은 도 3a 내지 도 3k에서의 예로서 주어진다.
본 발명의 실시예들은 도 2a에 예시된 특정한 감지 회로 구성으로 제한되지 않는다. 예를 들어, 상이한 컴퓨팅 구성요소 회로가 본 출원에서 설명된 다수의 실시예에 따라 논리 연산들을 수행하기 위해 사용될 수 있다. 도 2a에 예시되지 않지만, 다수의 실시예에서, 제어 회로는 어레이(230), 감지 증폭기(206), 및/또는 컴퓨팅 구성요소(231)에 연결될 수 있다. 그러한 제어 회로는 어레이 및 감지 회로와 동일한 칩 상에서 그리고/또는 예를 들어, 외부 프로세싱 자원 이를테면 외부 프로세서 상에서 구현될 수 있고, 본 출원에서 설명된 바와 같은 논리 연산들을 수행하기 위해 어레이 및 감지 회로에 대응하는 다양한 신호를 이네이블/디세이블하는 것을 제어할 수 있다. 뿐만 아니라, 단일 쌍의 상보적 감지 라인들(205-0/205-1)이 도 2a에 도시되지만, 어레이(230)는 다수의 상보적 감지 라인 쌍을 포함할 수 있다.
메모리에서 나눗셈 연산을 수행하기 위한 개요를 제공하는 예시적인 의사코드가 다음과 같이 주어진다:
for bitN in dividend{
copy bitN into bit0 of remainder
compare divisor with remainder
if (divisor <= remainder){
subtract divisor from remainder, store in remainder
leftshift quotient and add 1
if (bitN is not the last bit){
leftshift remainder
}
} else {
leftshift quotient
leftshift remainder
}
}
다수의 실시예에서, 나눗셈 연산을 수행하기 위해 사용될 수 있는 다른 연산들 중에서도 나눗셈 연산은 감산 연산, 가산 연산, 비교 연산, 시프트 연산, 및/또는 복사 연산을 사용하여 수행될 수 있다. 감산 연산, 가산 연산, 비교 연산, 시프트 연산 및/또는 복사 연산은 부울린 연산들 및 비-부울린 연산들을 사용하여 수행될 수 있다. 다수의 실시예에서, 부울린 및 비-부울린 연산들이 논리 연산들(예를 들어, NAND, AND, NOR, OR 등)을 사용하여 수행될 수 있다. 컴퓨팅 구성요소(231)와 함께 NAND, AND, NOR, 및 OR 논리 연산들을 수행하는 것의 예는 도 2b, 도 2c-1, 도 2c-1, 도 2c-1, 도 2d-1, 및 도 2d-2에서 주어진다.
표 1은 가산 연산을 수행하기 위해 실행될 수 있는 예시적인 다수의 명령을 제공한다. 표 1에 주어진 예는 메모리 어레이(230)의 부분에 저장된 값(예를 들어, 가수)의 논리 표현(예를 들어, 비트-벡터)에 1(하나)을 더한다. 비트-벡터 “srcdest[p]”는 가수의 논리 표현이고 메모리 어레이(230)에서의 제1 다수의 메모리 셀에 저장될 수 있다. 비트-벡터 srcdest[p]는 1이 가산될 수치 값의 논리 표현이다. P는 비트-벡터 srcdest[p]와 연관되는 인덱스를 나타낸다. 예를 들어, 비트-벡터 [011]은 비트 srcdest[0]가 1과 동등하고, 비트 srcdest[1]이 1과 동등하며, 비트 srcdest[2]가 0과 동등하도록 메모리 셀들(270-0 내지 270-2)에 저장될 수 있는 값 3의 논리 표현이다. 비트-벡터 tmp[p]는 저장 변수의 논리 표현이고 메모리 어레이(230)에서의 제2 다수의 메모리 셀에 저장될 수 있다. 예를 들어, 비트-벡터 tmp[p]는 메모리 셀들(270-3 내지 270-5)에 저장될 수 있다.
더하기 1:
srcdest[0] 판독
tmp[0] 기록
반전된 srcdest[0] 기록
모든 남은 P 비트들에 대해:
srcdest[p] 판독
tmp[0] or
tmp[1] 기록
srcdest[p] 판독
tmp[0] nand
반전된 tmp[0] 기록
tmp[1] and
srcdest[p] 기록
가산 연산은 두 개의 스테이지로 나눠질 수 있다. "더하기 1" 스테이지는 제1 비트-벡터 srcdest[p]의 논리 표현에 1을 더할 수 있다. "더하기 1" 스테이지에서의, “srcdest[0] 판독” 호출은 비트-벡터 srcdest[p]에서의 제1 인덱스를 갖는 비트를 판독(예를 들어, 래치)할 수 있다. 예를 들어, 메모리 셀(270-0)에 저장된 비트가 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에서, 본 출원에서 설명된 바와 같이, 래치될 수 있다. “tmp[0] 기록” 호출은 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에서 래치되는 값을 메모리 셀(270-3)을 활성화함으로써 메모리 셀(270-3)(예를 들어, 비트-벡터 tmp[0]의 제1 인덱스)에 저장할 수 있다. “반전된 srcdest[0] 기록” 호출은 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에 저장되는 비트를 반전시킬 수 있고 반전된 비트를 메모리 셀(270-0)을 활성화함으로써 메모리 셀(270-0)에 저장할 수 있다.
"모든 나머지 P 비트들에 대한" 스테이지는 비트-벡터 srcdest[p]에서의 제1 인덱스 이후 모든 인덱스에 대해 표 1에서의 호출들을 수행함으로써 제1 스테이지로부터의 임의의 나머지를 비트-벡터 srcdest[p]에서의 다른 비트들로 캐리할 수 있다. 예를 들어, 제1 반복 상의, “srcdest[p] 판독” 호출은 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에서 메모리 셀(270-1)에 저장된 비트를 래치함으로써 메모리 셀(270-1)에 저장된 비트를 판독할 수 있다. “tmp[0] or” 호출은 입력들로서 래치된 비트(예를 들어, 메모리 셀(270-1)로부터 판독된 비트) 및 메모리 셀(270-3)에 저장된 비트를 사용하여 OR 연산을 수행할 수 있다. 메모리 셀(270-3)에 저장된 비트는 “srcdest[p] 판독” 호출 이후 래치될 수 있다. OR 연산은 아래에서 설명될 바와 같이 컴퓨팅 구성요소(231)에서 수행될 수 있다. “tmp[1] 기록” 호출은 메모리 셀(270-4)을 활성화함으로써 메모리 셀(270-4)에 OR 연산의 결과를 저장할 수 있다. “srcdest[p] 판독” 호출은 감지 앰프(206)에서 메모리 어레이(270-1)에 저장된 비트를 래치할 수 있다. “tmp[0] nand” 호출은 입력들로서 래치된 비트(예를 들어, 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에 저장된 비트) 및 메모리 셀(270-3)에 저장된 비트를 사용하여 NAND 연산을 수행할 수 있다. 메모리 셀(270-3)에 저장된 비트는 감지 앰프(206)에서 래치되고 “srcdest[p] 판독” 호출 이후 NAND 연산을 위해 입력으로서 컴퓨팅 구성요소(231)에 제공될 수 있다. “반전된 tmp[0] 기록” 호출은 컴퓨팅 구성요소(231)에서 NAND 연산의 결과를 반전시킬 수 있다. 반전된 비트는 메모리 셀(270-3)을 활성화함으로써 메모리 셀(270-3)에 저장될 수 있다. “tmp[1] and” 호출은 입력으로서 NAND 연산의 결과 및 메모리 셀(270-4)에 저장된 비트를 사용하여 AND 연산을 수행할 수 있다. “srcdest[p] 기록” 호출은 메모리 셀(270-1)에 AND 연산의 결과를 저장할 수 있다. 이러한 점에서, 제2 스테이지의 제2 반복은 p에 대한 제3 인덱스를 사용하여 수행될 수 있다. 가산 연산은 가산 연산이 비트-벡터 srcdest[p]의 마지막 인덱스에 이를 때 끝날 수 있다.
표 2는 감산 연산을 수행하기 위헤 실행될 수 있는 다수의 명령의 예를 제공한다. 표 2에 제시된 감산 연산은 표 1에서 사용된 신택스를 사용하여 수행될 수 있다. 감산 연산은 세 개의 스테이지를 포함할 수 있다. "셋업" 스테이지, "남은 P 비트들을 통하는 루프" 스테이지, 및 "클린업" 스테이지. 표 2에 제공된 명령들은 비트-벡터 minuend[p], 비트-벡터 subtrahend[p], 비트-벡터 tmp[p], 및 비트-벡터 result[p]를 사용한다. 비트-벡터 subtrahend[p]는 감수 값의 논리 표현인 한편 비트-벡터 minuend[p]는 피감수 값의 논리 표현이다. 감산 연산에서 감수 값이 감수 값을 피감수 값에서 감산된다. 비트-벡터 result[p]는 비트-벡터 result[p]에 저장될 수 있는 감산 연산의 결과 값의 논리 표현이다. 비트-벡터 tmp[p]는 감산 연산을 실행하는 동안 일시적 저장으로서 사용되는 값의 논리 표현이다. 비트-벡터 minuend[p], subtrahend[p], tmp[p], 및 result[p]는 메모리 어레이(230)에서의 다수의 메모리 셀들(270)에 저장될 수 있다. 예를 들어, 비트-벡터 minuend[p]는 메모리 셀들(270-0 내지 270-3)에 저장될 수 있고, 비트-벡터 subtrahend[p]는 메모리 셀들(270-4 내지 270-7)에 저장될 수 있고, 비트-벡터 tmp[p]는 메모리 셀들(270-8 내지 270-11)에 저장될 수 있으며, 비트-벡터 result[p]는 메모리 셀들(270-12 내지 270-15)에 저장될 수 있다. 감산 연산은 감수 값의 2의 보수를 계산하는 것 및 감수 값의 2의 보수를 피감수 값에 더하는 것을 포함할 수 있다. 감수 값의 2의 보수는 그것이 피감수 값의 대응하는 비트들에 더해질 때 비트마다 계산될 수 있다.
셋업:
minuend[0] 판독
subtrahend[0] nand
tmp[0] 기록
minuend[0] 판독
subtrahend[0] or
tmp[0] and
result[0] 기록
minuend[0] and
반전된 tmp[0] 기록
남은 P 비트들을 통하는 루프:
subtrahend[p] 판독
반전된 subtrahend[p] 기록
minuend[p] xor
tmp[0] xor
result[p] 기록
minuend[p] 판독
subtrahend[p] xor
tmp[0] and
tmp[1] 기록
minuend[p] 판독
subtrahend[p] and
tmp[1] or
tmp[0] 기록
subtrahend[p] 판독
반전된 subtrahend[p] 기록
클린업:
subtrahend[p] 판독
반전된 subtrahend[p] 기록
minuend [p] xor
tmp[0] xor
result [p] 기록
subtrahend [p] 판독
반전된 subtrahend[p] 기록
표 3은 복사 및/또는 시프트 연산을 수행하기 위헤 실행될 수 있는 예시적인 다수의 명령을 제공한다. 복사 연산은 입력으로서 입력 값을 사용할 수 있고 출력으로서 출력 값을 사용할 수 있다. 비트-벡터 input[p]는 입력 값의 논리 표현이다. 비트-벡터 output[p]는 출력 값의 논리 표현이다. 비트-벡터 input[p]에서의 모든 인덱스에 대해 비트가 감지 앰프(206) 및/또는 컴퓨팅 구성요소(231)에서 대응하는 비트를 래치함으로써 비트-벡터 input[p]에 대응하는 메모리 호출로부터 판독된다. 래치된 대응하는 비트는 비트-벡터 input[p]와 동일한 인덱스를 갖는 비트-벡터 output[p]에 대응하는 메모리 셀에 저장될 수 있다. 좌측 시프트 연산은 비트가 비트-벡터 output[p]에 대응하는 메모리 셀에 저장되기 전 비트-벡터 output[p]의 인덱스에 시프트 값을 더하는 것을 포함할 수 있다. 예를 들어, “input[p] 판독” 호출은 비트-벡터 input[p]에 대응하는 메모리 어레이(230)의 제1 부분으로부터 제1 인덱스를 갖는 메모리 셀에 저장되는 비트를 래치할 수 있고 “output[p] 기록” 호출은 비트-벡터 output[p]에 대응하는 메모리 어레이(230)의 제2 부분으로부터 제2 인덱스를 갖는 메모리 셀에 비트를 저장할 수 있다.
P 비트들의 각각에 대해
input[p] 판독
output[p] 기록
표 4는 비교 연산을 수행하기 위해 실행될 수 있는 예시적인 다수의 명령을 제공한다. 비교 연산은 제수 값이 나머지 값보다 큰지 결정하기 위해 제수 값을 나머지 값과 비교할 수 있다. 비트-벡터 divisor[p]는 제수 값의 논리 표현이다. 비트-벡터 remainder[p]는 나머지 값의 논리 표현이다. “read divisor[max]” 호출에서 사용될 때 Max는 비트-벡터 divisor[p] 및/또는 비트-벡터 remainder[p]와 연관되는 가장 높은 인덱스를 나타낸다. 비트 difference_found_yet[0] 및 비트 difference_this_time[0]은 일시적 저장으로서 사용되는 변수들의 논리 표현이다. 비트 result[0]은 결과 변수의 논리 표현이다. 비교 연산은 "셋업" 스테이지, "남은 P 비트들을 통하는 루프" 스테이지, 및 "클린업" 스테이지를 포함한다. “셋업” 스테이지는 비트-벡터 divisor[p] 및 비트-벡터 remainder[p]의 가장 큰 인덱스를 사용한다. "남은 P 비트들을 통하는 루프" 스테이지는 가장 큰 인덱스보다 하나 작은 인덱스에서 시작하여 비트-벡터 divisor[p] 및 비트-벡터 remainder[p]의 제1 인덱스에 이를 때까지 인덱스를 차감함으로써 루프를 이동한다. 예를 들어, 가장 큰 인덱스가 4이면, "남은 P 비트들을 통하는 루프" 스테이지는 3과 동등한 인덱스로 시작하여 1과 동등한 제1 인덱스에 이를 때까지 차감한다. "클린업" 스테이지는 비트 result[0]을 반전시키고 비트는 비트 result[0]와 연관된 메모리 셀에 저장한다.
셋업:
divisor[max] 판독
remainder[max] xor
difference_found_yet[0] 기록
divisor [max] and
result[0] 기록
남은 P 비트들을 통하는 루프:
divisor [p] 판독
remainder [p] xor
difference_this_time[0] 기록
difference_found_yet[0] xor
difference_this_time[0] and
difference_this_time[0] 기록
difference_found_yet[0] or
difference_found_yet[0] 기록
difference_this_time[0] 판독
divisor[p] and
result[0] or
result[0] 기록
클린업
반전된 result[0] 기록
도 2b는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된 타이밍 선도(285-1)를 예시한다. 타이밍 선도(285-1)는 논리 연산(예를 들어, R-입력 논리 연산)의 제1 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 예시한다. 도 2b에서 설명된 제1 연산 단계는 예를 들어, AND, NAND, OR, 또는 NOR 연산의 제1 연산 단계일 수 있다. 아래에서 더 설명될 바와 같이, 도 2b에서 예시된 연산 단계를 수행하는 것은 컴퓨팅 기능을 수행하기 위해 전압 레일들 사이(예를 들어, 공급 및 접지 사이)에 풀 스윙을 제공하는 것을 수반할 수 있는, 이전 프로세싱 접근법들보다 상당히 적은 에너지(예를 들어, 약 절반)를 소모하는 것을 수반할 수 있다.
도 2b에 예시된 예에서, 상보적 논리 값들(예를 들어, “1” 및 “0”)에 대응하는 전압 레일들은(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)는 활성화하며(예를 들어, 음의 제어 신호(231)가 하이로 가고, 음의 제어 신호(228)가 로우로 간다), 이는 D 및 D_ 간 차동 신호를 증폭하여, 감지 라인 상에 로직 1에 대응하는 전압(예를 들어, VDD) 또는 로직 0에 대응하는 전압(예를 들어, 접지)(그리고 상보적 감지 라인(D_) 상에 다른 전압)을 야기하여, 감지된 데이터 값이 감지 앰프(206)의 주요 래치에 저장된다. 주요 에너지 소모는 감지 라인(D)(205-0)을 평균 전압(VDD/2)으로부터 레일 전압(VDD)로 충전하는 것에서 발생한다.
시간 t4에서, 패스 트랜지스터들(207-1 및 207-2)이 (예를 들어, 각각, 제어 라인들(211-1 및 211-2)에 인가되는 각각의 Passd 및 Passdb 제어 신호들을 통해) 이네이블된다. 제어 신호들(211-1 및 211-2)은 총괄적으로 제어 신호들(211)로서 지칭된다. 본 출원에서 사용될 때, 다양한 제어 신호, 이를테면 Passd 및 Passdb는 신호들이 인가되는 제어 라인들을 지칭함으로써 언급될 수 있다. 예를 들어, Passd 신호는 제어 신호(211-1)로서 지칭될 수 있다. 시간 t5에서, 누산기 제어 신호들(Accumb 및 Accum)이 각각의 제어 라인들(212-1 및 212-2)을 통해 활성화된다. 아래에서 설명될 바와 같이, 누산기 제어 신호들(212-1 및 212-2)은 후속 연산 단계들 동안 활성화된 채로 유지될 수 있다. 이와 같이, 이러한 예에서, 제어 신호들(212-1 및 212-2)을 활성화하는 것은 컴퓨팅 구성요소(231)의 보조 래치(예를 들어, 누산기)를 활성화한다. 감지 앰프(206)에 저장된 감지된 데이터 값이 보조 래치로 전달(예를 들어, 복사)된다.
시간 t6에서, 패스 트랜지스터들(207-1 및 207-2)이 디세이블(예를 들어, 턴 오프)되나; 누산기 제어 신호들(212-1 및 212-2)은 활성화된 채로 유지되기 때문에, 누산된 결과는 보조 래치(예를 들어, 누산기)에 저장(예를 들어, 래치)된다. 시간 t7에서, 로우 신호(204-0)가 비활성화되고, 시간 t8에서 어레이 감지 앰프들이 비활성화된다(예를 들어, 제어 신호들(228 및 231)이 비활성화된다).
시간 t9에서, 감지 라인들(D 및 D_)이 감지 라인 전압 신호들(205-0 및 205-1)에 의해 예시된 바와 같이 이들의 각각의 레인 전압들을 평균 전압(225)(VDD/2)으로 이동시켜 평균화된다(예를 들어, 평균 신호(226)가 활성화된다). 평균화는 에너지의 보전 법칙에 기인하여 에너지를 거의 소모하지 않는다. 평균화는 이러한 예에서, VDD/2인, 평균화 전압에서 상보적 감지 라인들(D 및 D_)을 함께 단락하는 것을 수반할 수 있다. 평균화는, 예를 들어, 메모리 셀 감지 동작 이전에 발생할 수 있다.
도 2c-1 및 도 2c-2는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된, 각각, 타이밍 선도들(285-2 및 285-3)을 예시한다. 타이밍 선도들(285-2 및 285-3)은 논리 연산(예를 들어, R-입력 논리 연산)의 다수의 중간 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 예시한다. 예를 들어, 타이밍 선도(285-2)는 R-입력 NAND 연산 또는 R-입력 AND 연산의 다수의 중간 연산 단계에 대응하고, 타이밍 선도(285-3)는 R-입력 NOR 연산 또는 R-입력 OR 연산의 다수의 중간 연산 단계에 대응한다. 예를 들어, AND 또는 NAND 연산을 수행하는 것은 도 2b에서 설명된 연산 단계와 같은 초기 연산 단계에 후속하여 다수회 도 2c-1에 도시된 연산 단계를 수행하는 것을 포함할 수 있다. 유사하게, OR 또는 NOR 연산을 수행하는 것은 도 2b에서 설명된 연산 단계와 같은 초기 연산 단계에 후속하여 다수회 도 2c-2에 도시된 연산 단계를 수행하는 것을 포함할 수 있다.
타이밍 선도들(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)는 활성화하며(예를 들어, 양의 제어 신호(231)가 하이로 가고, 음의 제어 신호(228)가 로우로 간다), 이는 D 및 D_ 간 차동 신호를 증폭하여, 감지 라인(D) 상에 로직 1에 대응하는 전압(예를 들어, VDD) 또는 로직 0에 대응하는 전압(예를 들어, 접지)(그리고 상보적 감지 라인(D_) 상에 다른 전압)을 야기하여, 감지된 데이터 값이 감지 앰프(206)의 주요 래치에 저장된다. 주요 에너지 소모는 감지 라인(D)(205-5)을 평균 전압(VDD/2)으로부터 레일 전압(VDD)로 충전하는 것에서 발생한다.
타이밍 선도들(285-2 및 285-3)에 도시된 바와 같이, 시간 t4에서(예를 들어, 선택된 셀이 감지된 후), 제어 신호들(211-1(Passd) 및 211-2(Passdb)) 중 단지 하나가 특정한 논리 연산에 따라, 활성화된다(예를 들어, 패스 트랜지스터들(207-1 및 207-2) 중 단지 하나가 이네이블된다). 예를 들어, 타이밍 선도(285-2)가 NAND 또는 AND 연산의 중간 단계에 대응하기 때문에, 제어 신호(211-1)는 시간 t4에서 활성화되고 제어 신호(211-2)는 비활성화된 채로 유지된다. 반대로, 타이밍 선도(285-3)는 NOR 또는 OR 연산의 중간 단계에 대응하기 때문에, 제어 신호(211-2)가 시간 t4에서 활성화되고 제어 신호(211-1)가 비활성화된 채로 유지된다. 위에서부터 도 2b에서 설명된 초기 연산 단계 동안 누산기 제어 신호들(212-1(Accumb) 및 212-2(Accum))이 활성화되었고, 이들이 중간 연산 단계(들) 동안 활성화된채로 유지된다는 것을 상기하자.
누산기가 이전에 활성화되었기 때문에, 단지 Passd(211-1)를 활성화하는 것은 전압 신호(205-0)에 대응하는 데이터 값을 누산하는 것으로 귀결된다. 유사하게, 단지 Passdb(211-2)를 활성화하는 것은 전압 신호(205-1)에 대응하는 데이터 값을 누산하는 것으로 귀결된다. 예를 들어, 단지 Passd(211-1)가 활성화되는, 예시적인 AND/NAND 연산(예를 들어, 타이밍 선도(285-2))에서, 선택된 메모리 셀(예를 들어, 이러한 예에서 Row1 메모리 셀)이 논리 0이면, 보조 래치와 연관된 누산된 값은 보조 래치가 논리 0을 저장하도록 로우로 검증된다. Row1 메모리 셀에 저장된 데이터 값이 논리 0이 아니면, 보조 래치는 이의 저장된 Row0 데이터 값(예를 들어, 논리 1 또는 논리 0)을 유지한다. 이와 같이, 이러한 AND/NAND 연산 예에서, 보조 래치는 제로들(0들) 누산기로서의 역할을 하고 있다. 유사하게, 단지 Passdb가 활성화되는, 예시적인 OR/NOR 연산(예를 들어, 타이밍 선도(285-3))에서, 선택된 메모리 셀(예를 들어, 이러한 예에서 Row1 메모리 셀)이 논리 1이면, 보조 래치와 연관된 누산된 값은 보조 래치가 논리 1을 저장하도록 하이로 검증된다. Row1 메모리 셀에 저장된 데이터 값이 논리 1이 아니면, 보조 래치는 이의 저장된 Row0 데이터 값(예를 들어, 논리 1 또는 논리 0)을 유지한다. 이와 같이, 이러한 OR/NOR 연산 예에서, D_ 상의 전압 신호(205-1)가 누산기의 참 데이터 값을 설정하고 있기 때문에, 보조 래치는 일들(1들) 누산기로서의 역할을 효과적으로 하고 있다.
중간 연산 단계 이를테면 도 2c-1 및 도 2c-2에 도시된 중간 연산 단계의 마지막에서, Passd 신호(예를 들어, AND/NAND를 위한) 또는 Passdb 신호(예를 들어, OR/NOR를 위한)가 비활성화되고(예를 들어, 시간 t5에서), 선택된 로우가 비활성화되고(예를 들어, 시간 t6에서), 감지 앰프가 비활성화되며(예를 들어, 시간 t7에서), 평균화가 발생한다(예를 들어, 시간 t8에서). 중간 연산 단계 이를테면 도 2c-1 또는 도 2c-2에 도시된 중간 연산 단계는 다수의 추가 로우로부터의 결과들을 누산하기 위해 반복될 수 있다. 예로서, 일련의 타이밍 선도(285-2 또는 285-3)는 Row2 메모리 셀을 위해 후속(예를 들어, 제2) 시간, Row3 메모리 셀을 위해 후속(예를 들어, 제3) 시간 등에서 수행될 수 있다. 예를 들어, 10-입력 NOR 연산을 위해, 도 2c-2에 도시된 중간 단계는 10-입력 논리 연산의 9개의 입력을 제공하기 위해 9회 발생할 수 있으며, 제10 입력은 초기 연산 단계(예를 들어, 도 2b에서 설명된 바와 같은) 동안 결정된다.
도 2d-1 및 도 2d-2는 본 발명의 다수의 실시예에 따른 감지 회로를 사용하여 다수의 논리 연산을 수행하는 것과 연관된, 각각, 타이밍 선도들(285-4 및 285-5)을 예시한다. 타이밍 선도들(285-4 및 285-5)은 논리 연산(예를 들어, R-입력 논리 연산)의 다수의 마지막 연산 단계를 수행하는 것과 연관된 신호들(예를 들어, 전압 신호들)을 예시한다. 예를 들어, 타이밍(285-4)는 R-입력 NAND 연산 또는 R-입력 NOR 연산에 대응하고, 타이밍 선도(285-5)는 R-입력 AND 연산 또는 R-입력 OR 연산에 대응한다. 예를 들어, NAND 연산을 수행하는 것은 도 2c-1과 연관하여 설명된 중간 연산 단계의 다수의 반복에 후속하여 도 2d-1에 도시된 연산 단계를 수행하는 것을 포함할 수 있고, NOR 연산을 수행하는 것은 도 2c-2과 연관하여 설명된 중간 연산 단계의 다수의 반복에 후속하여 도 2d-1에 도시된 연산 단계를 수행하는 것을 포함할 수 있고, AND 연산을 수행하는 것은 도 2c-1과 연관하여 설명된 중간 연산 단계의 다수의 반복에 후속하여 도 2d-2에 도시된 연산 단계를 수행하는 것을 포함할 수 있으며, OR 연산을 수행하는 것은 도 2c-2과 연관하여 설명된 중간 연산 단계의 다수의 반복에 후속하여 도 2d-2 도시된 연산 단계를 수행하는 것을 포함할 수 있다. 아래에 제시된 표 5는 본 출원에서 설명된 다수의 실시예에 따라 다수의 R-입력 논리 연산을 수행하는 것과 연관된 일련의 연산 단계에 대응하는 도면들을 나타낸다.
연산 도 2b 도 2c-1 도 2c-2 도 2d-1 도 2d-2
AND 제1 단계 R-1 반복들 마지막 단계
NAND 제1 단계 R-1 반복들 마지막 단계
OR 제1 단계 R-1 반복들 마지막 단계
NOR 제1 단계 R-1 반복들 마지막 단계
도 2d-1 및 도 2d-2의 마지막 연산 단계들이 어레이(예를 들어, 어레이(230))의 로우에 R-입력 논리 연산의 결과를 저장하는 것과 연관하여 설명된다. 그러나, 위에서 설명된 바와 같이, 다수의 실시예에서, 결과는 어레이에 다시가 아니라 적합한 위치에(예를 들어, I/O 라인들을 통해, 제어기 및/또는 호스트 프로세서와 연관된 외부 레지스터, 상이한 메모리 디바이스의 메모리 어레이 등에) 저장될 수 있다.
타이밍 선도들(285-4 및 285-5)에 도시된 바와 같이, 시간 t1에서, 평균화가 감지 라인들(D 및 D_)이 플로트하고 있도록 디세이블된다(예를 들어, 평균화 신호(226)이 디세이블된다). 시간 t2에서, InvD 신호(213) 또는 Passd 및 Passdb 신호들(211) 중 어느 하나가 어떤 논리 연산이 수행되고 있는지에 따라 활성화된다. 이러한 예에서, InvD 신호(213)가 NAND 또는 NOR 연산을 위해 활성화되고(도 2d-1 참조), Passd 및 Passdb 신호들(211)이 AND 또는 OR 연산을 위해 활성화된다(도 2d-2 참조).
시간 t2에서 InvD 신호(213)를 활성화하는 것(예를 들어, NAND 또는 NOR 연산과 연관하여)은 트랜지스터들(214-1/214-2)을 이네이블하고 감지 라인(D) 또는 감지 라인(D_) 중 어느 하나가 아래로 풀링됨에 따라 보조 래치에 저장된 데이터 값의 반전을 야기한다. 이와 같이, 활성화 신호(213)는 누산된 출력을 반전시킨다. 따라서, NAND 연산을 위해, 이전 연산 단계들(예를 들어, 초기 연산 단계 및 하나 이상의 중간 연산 단계)에서 감지된 메모리 셀들 중 임의의 메모리 셀이 논리 0을 저장했다면(예를 들어, NAND 연산의 R-입력들 중 임의의 입력이 논리 0이었다면), 감지 라인(D_)은 논리 0(예를 들어, 접지 전압)에 대응하는 전압을 캐리할 것이고 감지 라인(D)은 논리 1(예를 들어, 공급 전압 이를테면 VDD)에 대응하는 전압을 캐리할 것이다. 이러한 NAND 예에 대해, 이전 연산 단계들에서 감지된 메모리 셀들 중 임의의 메모리 셀이 논리 1을 저장했다면(예를 들어, NAND 연산의 R-입력들 중 임의의 입력이 논리 1이었다면), 감지 라인(D_)은 논리 1에 대응하는 전압을 캐리할 것이고 감지 라인(D)은 논리 0에 대응하는 전압을 캐리할 것이다. 그 후 시간 t3에서, 감지 앰프(206)의 주요 래치가 활성화되어(예를 들어, 감지 앰프가 점호되어), 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)의 주요 래치가 활성화되고, 감지 라인(D)은 이제 이전 연산 단계들 동안 감지된 메모리 셀들로부터 결정된 바와 같이 각각의 입력 데이터 값들의 NOR된 결과를 포함한다. 이와 같이, 입력 데이터 값들 중 임의의 입력 데이터 값이 논리 1인 경우 감지 라인(D)은 접지될 것이고, 모든 입력 데이터 값이 논리 0인 경우 감지 라인(D)은 VDD에 있을 것이다.
도 2d-2를 참조하면, Passd 및 Passdb 신호들(211)을 활성화하는 것(예를 들어, AND 또는 OR 연산)은 컴퓨팅 구성요소(231)의 보조 래치에 저장된 누산된 출력을 감지 앰프(206)의 주요 래치로 전달한다. 예를 들어, AND 연산을 위해, 이전 연산 단계들(예를 들어, 도 2b의 제1 연산 단계 및 도 2c-1의 중간 연산 단계의 한 번 이상의 반복)에서 감지된 메모리 셀들 중 임의의 메모리 셀이 논리 0을 저장했다면(예를 들어, AND 연산의 R-입력들 중 임의의 입력이 논리 0이었다면), 감지 라인(D_)은 논리 1에 대응하는 전압(예를 들어, VDD)을 캐리할 것이고 감지 라인(D)은 논리 0(예를 들어, 접지)에 대응하는 전압을 캐리할 것이다. 이러한 AND 예에 대해, 이전 연산 단계들에서 감지된 모든 메모리 셀이 논리 1을 저장했다면(예를 들어, AND 연산의 R-입력들 중 임의의 입력이 논리 1이었다면), 감지 라인(D_)은 논리 0에 대응하는 전압을 캐리할 것이고 감지 라인(D)은 논리 1에 대응하는 전압을 캐리할 것이다. 그 후 시간 t3에서, 감지 앰프(206)의 주요 래치가 활성화되고, 감지 라인(D)은 이제 이전 연산 단계들 동안 감지된 메모리 셀들로부터 결정된 바와 같이 각각의 입력 데이터 값들의 AND된 결과를 캐리한다. 이와 같이, 입력 데이터 값들 중 임의의 입력 데이터 값이 논리 0인 경우 감지 라인(D)은 접지될 것이고, 모든 입력 데이터 값이 논리 1인 경우 감지 라인(D)은 VDD에 있을 것이다.
OR 연산을 위해, 이전 연산 단계들(예를 들어, 도 2b의 제1 연산 단계 및 도 2c-2에 도시된 중간 연산 단계의 한 번 이상의 반복)에서 감지된 메모리 셀들 중 임의의 메모리 셀이 논리 1을 저장했다면(예를 들어, OR 연산의 R-입력들 중 임의의 입력이 논리 1이었다면), 감지 라인(D_)은 논리 0(예를 들어, 접지)에 대응하는 전압을 캐리할 것이고 감지 라인(D)은 논리 1(예를 들어, VDD)에 대응하는 전압을 캐리할 것이다. 이러한 OR 예에 대해, 이전 연산 단계들에서 감지된 모든 메모리 셀이 논리 0을 저장했다면(예를 들어, OR 연산의 모든 R-입력이 논리 0이었다면), 감지 라인(D)은 논리 0에 대응하는 전압을 캐리할 것이고 감지 라인(D_)은 논리 1에 대응하는 전압을 캐리할 것이다. 그 후 시간 t3에서, 감지 앰프(206)의 주요 래치가 활성화되고, 감지 라인(D)은 이제 이전 연산 단계들 동안 감지된 메모리 셀들로부터 결정된 바와 같이 각각의 입력 데이터 값들의 OR된 결과를 캐리한다. 이와 같이, 입력 데이터 값들 중 임의의 입력 데이터 값이 논리 1인 경우 감지 라인(D)은 VDD에 있을 것이고, 모든 입력 데이터 값이 논리 0인 경우 감지 라인(D)은 접지될 것이다.
그 후 R-입력 AND, OR, NAND, 및 NOR 연산들의 결과는 어레이(230)의 메모리에 다시 저장될 수 있다. 도 2d-1 및 도 2d-2에 도시된 예들에서, R-입력 논리 연산의 결과는 RowR(예를 들어, 204-R)에 연결되는 메모리 셀에 저장된다. RowR 메모리 셀에 논리 연산의 결과를 저장하는 것은 RowR을 활성화함으로써 RowR 액세스 트랜지스터(202)를 이네이블하는 것을 단순히 수반한다. RowR 메모리 셀의 커패시터(203)는 감지 라인(D) 상의 데이터 값(예를 들어, 논리 1 또는 논리 0)에 대응하는 전압으로 유도될 것이며, 이는 RowR 메모리 셀에 이전에 저장되었던 모든 데이터 값을 본질적으로 오버라이트한다. RowR 메모리 셀이 논리 연산에 대한 입력으로서 사용되는 데이터 값을 저장한 동일한 메모리 셀일 수 있다는 것이 주의된다. 예를 들어, 논리 연산의 결과는 Row0 메모리 셀 또는 Row1 메모리 셀에 다시 저장될 수 있다.
타이밍 선도들(285-4 및 285-5)은 시간 t3에서, 감지 앰프(206)를 활성화하기 위해 비활성화된 양의 제어 신호(231) 및 음의 제어 신호(228)(예를 들어, 신호(231)는 하이로 가고 신호(228)은 로우로 간다)를 예시한다. 시간 t4에서, 시간 t2에서 활성화된 각각의 신호(예를 들어, 213 또는 211)가 비활성화된다. 실시예들은 이 예에 제한되지 않는다. 예를 들어, 다수의 실시예에서, 감지 앰프(206)는 시간 t4에 후속하여(예를 들어, 신호(213) 또는 신호들(211)이 비활성화된 후) 활성화될 수 있다.
도 2d-1 및 도 2d-2에 도시된 바와 같이, 시간 t5에서, RowR(204-R)이 활성화되며, 이는 선택된 셀의 커패시터(203)를 누산기에 저장된 논리 값에 대응하는 전압으로 유도한다. 시간 t6에서, Row R이 비활성화되고, 시간 t7에서, 감지 앰프(206)가 비활성화되며(예를 들어, 신호들(228 및 231)이 비활성화된다) 시간 t8에서 평균화가 발생한다(예를 들어, 신호(226)가 활성화되고 상보적 감지 라인들(205-0/205-1) 상의 전압들이 평균 전압으로 유도된다).
다수의 실시예에서, 감지 회로 이를테면 도 2a에 설명된 감지 회로(예를 들어, 메모리 셀들과 가장 좋은 상태로(on pitch) 형성되는 회로)는 다수의 논리 연산의 수행을 병렬적으로 이네이블할 수 있다. 예를 들어, 16K 컬럼을 갖는 어레이에서, 16K 논리 연산은 버스를 통해 어레이 및 감지 회로로부터 데이터를 전달하지 않고 그리고/또는 I/O 라인들을 통해 어레이 및 감지 회로로부터 데이터를 전달하지 않고, 병렬적으로 수행될 수 있다.
또한, 해당 기술분야에서의 통상의 기술자는 R-입력 논리 연산들(예를 들어, NAND, AND, NOR, OR 등)을 수행하는 능력이 보다 많은 복합 컴퓨팅 기능 이를테면 다른 주요 수학 기능들 및/또는 패턴 비교 기능들 중에서도 가산, 감산, 곱셈, 및 나눗셈의 수행을 가능하게 할 수 있다. 예를 들어, 일련의 NAND 연산은 완전한 가산기 기능을 수행하기 위해 조합될 수 있다. 예로서, 완전한 가산기가 캐리 인 및 캐리 아웃과 함께 두 개의 데이터 값을 가산하기 위해 12개의 NAND 게이트를 필요로 하는 경우, 384개의 NAND 연산(12 x 32) 전체가 두 개의 32 비트 수를 가산하기 위해 수행될 수 있다. 본 발명의 실시예들은 또한 비-부울린(예를 들어, 복사, 비교 등)일 수 있는 논리 연산들을 수행하디기 위해 사용될 수 있다.
추가적으로, 다수의 실시예들에사, 수행되는 논리 연산에 대한 입력들은 감지 회로부(예를 들어, 150)가 연결되는 메모리 어레이에 저장된 데이터 값이 아닐 수 있다. 예를 들어, 논리 연산에 대한 다수의 입력이 어레이(예를 들어, 230)의 로우를 활성화하지 않고 감지 증폭기(예를 들어, 206)에 의해 감지될 수 있다. 예로서, 다수의 입력이 이에 연결되는 I/O 라인들을 통해 감지 앰프(206)에 의해 수신될 수 있다. 그러한 입력들은 어레이(230) 외부의 소스로부터 이를테면 예를 들어, 호스트 프로세서(예를 들어, 호스트(110)) 및/또는 외부 제어기로부터 (예를 들어, 적절한 I/O 라인들을 통해) 감지 앰프(206)로 제공될 수 있다. 다른 예로서, 논리 연산을 수행하는 것과 연관하여, 특정한 감지 앰프(예를 들어, 206) 및 이의 대응하는 컴퓨팅 구성요소(예를 들어, 231)에 대한 입력들은 상이한 감지 앰프/컴퓨팅 구성요소 쌍으로부터 수신될 수 있다. 예를 들어, 셀들의 제1 컬럼에 연결되는 제1 누산기에 저장된 데이터 값(예를 들어, 논리 결과)이 제1 컬럼과 동일한 어레이에 위치될 수 있거나 되지 않을 수 있는, 셀들의 상이한 컬럼과 연관된 상이한(예를 들어, 인접) 감지 앰프/컴퓨팅 구성요소 쌍에 전달될 수 있다.
본 발명의 실시예들은 도 2a에 예시된 특정한 감지 회로 구성으로 제한되지 않는다. 예를 들어, 상이한 컴퓨팅 구성요소 회로가 본 출원에서 설명된 다수의 실시예에 따라 논리 연산들을 수행하기 위해 사용될 수 있다. 도 2a에 예시되지 않더라도, 다수의 실시예에서, 제어 회로는 어레이(230), 감지 앰프(206), 및/또는 컴퓨팅 구성요소(231)에 결합될 수 있다. 그러한 제어 회로는 어레이 및 감지 회로와 동일한 칩 상에서 그리고/또는 예를 들어, 외부 프로세싱 자원 이를테면 외부 프로세서 상에서 구현될 수 있고, 본 출원에서 설명된 바와 같은 논리 연산들을 수행하기 위해 어레이 및 감지 회로에 대응하는 다양한 신호를 이네이블/디세이블하는 것을 제어할 수 있다.
도 2a, 도 2b, 도 2c-1, 도 2c-2, 도 2d-1, 및 도 2d-2와 연관되어 설명된 예시적인 논리 연산 단계들은 데이터 값(예를 들어, 메모리 셀로부터 감지된 데이터 값 및/또는 감지 라인의 전압 또는 전류에 대응하는 데이터 값)을 누적하는 것을 수반한다. 에너지의 보전에 기인하여, 논리 연산 단계를 수행하는 것에 있어서 소모되는 에너지는 감지 앰프가 활성화될 때(예를 들어 도 2b, 도 2c-1, 도 2c-2, 도 2d-1, 및 도 2d-2에 도시된 바와 같은 시간 t3에서) 시작되는, VDD/2로부터 VDD로의 감지 라인(D 또는 D_)의 커패시턴스의 충전 동안 소모되는 에너지와 대략 동일하다. 이와 같이, 논리 연산을 수행하는 것은 대략 감지 라인(예를 들어, 디지트 라인)을 VDD/2로부터 VDD로 충전하기 위해 사용되는 에너지를 소모한다. 그에 반해, 다양한 이전 프로세싱 접근법은 보통 적어도 레일로부터 레일로(예를 들어, 접지로부터 VDD로) 감지 라인을 충전하기 위해 사용되는 에너지량을 소모하며, 이는 본 출원에서 설명된 실시예들과 비교해서 두 배 이상 더 많은 에너지일 수 있다.
도 3a는 본 발명의 다수의 실시예에 따른 순차적 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서의 어레이(330)의 일부분의 셀들의 상태들을 도시하는 논리 선도를 예시한다. 도 3a는 도 2a의 메모리 어레이(230) 및 도 1의 메모리 어레이(130)와 유사한 메모리 어레이(330)를 포함한다. 메모리 어레이(330)는 감지 라인들(305-0, 305-1, 305-2, 305-3, 305-4, 305-5)(예를 들어, 감지 라인들(305)로서 일반적으로 지칭되는)을 포함한다. 보다 많거나 또는 보다 적은 감지 라인이 메모리 어레이(330)에 포함될 수 있다. 감지 라인들(305)의 각각은 상이한 나눗셈 연산을 나타낸다. 예를 들어, 여섯 개의 상이한 나눗셈 연산이 여섯 개의 상이한 감지 라인에 연결되는 다수의 메모리 셀에 저장된 값들에 기초하여 (예를 들어, 병렬적으로) 수행될 수 있다.
메모리 어레이(330)는 또한 선택 라인들(304-0, 304-1, 304-2, 304-3, 304-4, 304-5, 304-6, 304-7, 304-8, 304-9, 304-10, 304-11, 304-12, 304-13, 304-14, 304-15, 304-16)(예를 들어, 선택 라인들(304)로서 일반적으로 지칭되는)을 포함한다. 도 3a에서, 제1 나눗셈 연산은 제수 값(322-0)으로 나눠지는 피제수 값(320-0)으로 이루어질 수 있다. 제1 나눗셈 연산의 결과들은 몫 값(324-0) 및 나머지 값(326-0)으로 저장될 수 있다. 제2 나눗셈 연산은 제수 값(322-1)으로 나눠지는 피제수 값(320-1)으로 이루어질 수 있다. 제2 나눗셈 연산의 결과들은 몫 값(324-1) 및 나머지 값(326-1)으로 저장될 수 있다. 제3 나눗셈 연산은 제수 값(322-2)으로 나눠지는 피제수 값(320-2)으로 이루어질 수 있다. 제3 나눗셈 연산의 결과들은 몫 값(324-2) 및 나머지 값(326-2)으로 저장될 수 있다. 제4 나눗셈 연산은 제수 값(322-3)으로 나눠지는 피제수 값(320-3)으로 이루어질 수 있다. 제4 나눗셈 연산의 결과들은 몫 값(324-3) 및 나머지 값(326-3)으로 저장될 수 있다. 제5 나눗셈 연산은 제수 값(322-4)으로 나눠지는 피제수 값(320-4)으로 이루어질 수 있다. 제5 나눗셈 연산의 결과들은 몫 값(324-4) 및 나머지 값(326-4)으로 저장될 수 있다. 제6 나눗셈 연산은 제수 값(322-5)으로 나눠지는 피제수 값(320-5)으로 이루어질 수 있다. 제6 나눗셈 연산의 결과들은 몫 값(324-5) 및 나머지 값(326-5)으로 저장될 수 있다.
피제수 값들(320-0, 320-1, 320-2, 320-3, 320-4, 320-5)(예를 들어, 피제수 값들(320)로서 일반적으로 지칭되는), 제수 값들(322-0, 322-1, 322-2, 322-3, 322-4, 322-5)(예를 들어, 제수 값들(322)로서 일반적으로 지칭되는), 몫 값들(324-0, 324-1, 324-2, 324-3, 324-4, 324-5), 및 나머지 값들(326-0, 326-1, 326-2, 326-3, 326-4, 326-5)이 선택 라인들(304), 및 감지 라인들(305)에 연결되는 메모리 셀들에 비트-벡터들로서 저장될 수 있다. 예를 들어, 다수의 메모리 셀에 저장되는 피제수 값(320-0)은 5와 동등한 값을 가질 수 있다. 피제수 값(320-0)은 감지 라인(320-0) 및 선택 라인들(304-0, 304-1, 304-2, 304-3)에 연결되는 메모리 셀들에 저장될 수 있는 비트-벡터 [0101]에 의해 표현될 수 있다.
도 3a는, 메모리 어레이(330)에서의 메모리 셀들의 초기 상태들을 도시한다. 예를 들어, 몫 값들 및 나머지 값들을 저장하는 메모리 셀들은 0의 값을 나타내는 비트-벡터 [0000]로 초기화될 수 있다. 피제수 값(320-0)을 저장하는 메모리 셀들은 비트-벡터 [0101]로 초기화될 수 있다. 피제수 값(320-0)은 5와 동등하다. 피제수 값(320-1)을 저장하는 메모리 셀들은 비트-벡터 [0111]를 저장하도록 초기화된다. 피제수 값(320-1)은 7과 동등하다. 피제수 값(320-2)을 저장하는 메모리 셀들은 비트-벡터 [0011]를 저장하도록 초기화된다. 피제수 값(320-2)은 3과 동등하다. 피제수 값(320-3)을 저장하는 메모리 셀들은 비트-벡터 [0110]를 저장하도록 초기화된다. 피제수 값(320-3)은 6과 동등하다. 피제수 값(320-4)을 저장하는 메모리 셀들은 비트-벡터 [1000]를 저장하도록 초기화된다. 피제수 값(320-4)은 8과 동등하다. 피제수 값(320-5)을 저장하는 메모리 셀들은 비트-벡터 [1100]를 저장하도록 초기화된다. 피제수 값(320-5)은 12와 동등하다.
피제수 값(322-0)을 저장하는 메모리 셀들은 비트-벡터 [0100]를 저장하도록 초기화된다. 저장된 제수 값(322-0)은 4와 동등하다. 제수 값(322-1)을 저장하는 메모리 셀들은 비트-벡터 [0010]를 저장하도록 초기화된다. 제수 값(322-1)은 2와 동등하다. 제수 값(322-2)을 저장하는 메모리 셀들은 비트-벡터 [0001]를 저장하도록 초기화된다. 제수 값(322-2)은 1과 동등하다. 제수 값(322-3)을 저장하는 메모리 셀들은 비트-벡터 [0011]를 저장하도록 초기화된다. 제수 값(322-3)은 3과 동등하다. 제수 값(322-4)을 저장하는 메모리 셀들은 비트-벡터 [0101]를 저장하도록 초기화된다. 제수 값(322-4)은 5와 동등하다. 제수 값(322-5)을 저장하는 메모리 셀들은 비트-벡터 [0110]를 저장하도록 초기화된다. 제수 값(322-5)은 6과 동등하다.
도 3a는 또한 마스크들(328-0, 328-1, 328-2, 328-3, 328-4, 328-5)(예를 들어, 마스크들(328)로서 일반적으로 지칭되는)을 포함한다. 마스크들(328)은 도 3c에서 더 설명된다.
도 3b 내지 도 3k는 본 발명의 다수의 실시예에 따른 나눗셈 연산을 수행하는 것과 연관된 상이한 단계들 동안(예를 들어, 계산들 이후) 어레이 부분(330)의 메모리 셀들의 상태들을 도시하는 논리 선도들을 예시한다. 도 3a는 어레이 부분(330)의 메모리 셀들의 원래(예를 들어, 초기화된) 상태들을 예시한다.
도 3b는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3a에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
나눗셈 연산을 수행하는 것에서의 제1 계산은 피제수 값들(320)을 나타내는 비트 벡터들의 제4 인덱스와 연관된 메모리 셀들에 저장된 비트들을 나머지 값(326)을 나타내는 비트 벡터들의 제1 인덱스와 연관된 메모리 셀들로 복사하는 것이다. 예를 들어, 피제수 값(320-0)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-0) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 0)는, 나머지 값(326-0)을 저장하는 메모리 셀들의 감지 라인(305-0) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 피제수 값(320-1)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-1) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 0)는, 나머지 값(326-1)을 저장하는 메모리 셀들의 감지 라인(305-1) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 피제수 값(320-1)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-2) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 0)는, 나머지 값(326-2)을 저장하는 메모리 셀들의 감지 라인(305-2) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 피제수 값(320-3)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-3) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 0)는, 나머지 값(326-3)을 저장하는 메모리 셀들의 감지 라인(305-3) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 피제수 값(320-4)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-4) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 1)는, 나머지 값(326-4)을 저장하는 메모리 셀들의 감지 라인(305-4) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 피제수 값(320-5)을 저장하는 메모리 셀들의, 도 3a의 감지 라인(305-5) 및 선택 라인(304-3)에 연결되는, 메모리 셀에 저장된 비트(예를 들어, 1)는, 나머지 값(326-5)을 저장하는 메모리 셀들의 감지 라인(305-5) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다. 따라서, 복사 연산 이후, 나머지 값들을 나타내는 비트 벡터들(326-0,..., 326-5)이 각각, 0, 0, 0, 0, 1 및 1의 업데이트된 나머지 값들을 나타내는, 각각, [0000], [0000], [0000], [0000], [0001], 및 [0001]로 업데이트되었다.
도 3c는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3b에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3c에서 다수의 마스크(328)가 생성된다. 본 출원에서 사용될 때, 마스크는 두 개의 값을 비교(예를 들어, 피제수 값을 나머지 값과 비교)한 후 생성되는 마스크 및/또는 다수의 값을 비교한 후 생성되는 마스크일 수 있다. 예를 들어, 마스크(328-0)는 제수 값(322-0) 및 나머지 값(326-0)의 비교의 결과를 나타낼 수 있다. 마스크(328-1)는 제수 값(322-1) 및 나머지 값(326-1)의 비교의 결과를 나타낼 수 있다. 마스크(328-2)는 제수 값(322-2) 및 나머지 값(326-2)의 비교의 결과를 나타낼 수 있다. 마스크(328-3)는 제수 값(322-3) 및 나머지 값(326-3)의 비교의 결과를 나타낼 수 있다. 마스크(328-4)는 제수 값(322-4) 및 나머지 값(326-4)의 비교의 결과를 나타낼 수 있다. 마스크(328-5)는 제수 값(322-5) 및 나머지 값(326-5)의 비교의 결과를 나타낼 수 있다. 비교는 제수 값이 대응하는 나머지 값 이하인지를 결정할 수 있다. 마스크들(328-0, 328-1, 328-2, 328-3, 328-4, 328-5)(예를 들어, 마스크(328)로 일반적으로 지칭되는)을 저장하는 메모리 셀들은 제수 값이 나머지 값보다 클 때 0으로 설정될 수 있고 제수 값이 나머지 값 이하일 때 1로 설정된다. 어떤 제수 값(322)도 나머지 값(326) 이하이지 않기 때문에 도 3c에서의 마스크들(328)은 모두 0으로 설정된다. 예를 들어, 제수 값(322-5)(예를 들어, 6)은 나머지 값(326-5)(예를 들어, 1)보다 크기 때문에 마스크(328-5)의 메모리 셀은 0으로 설정된다.
도 3d는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3c에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3d에서, 0과 동등한 값을 갖는 마스크들(328)과 연관되는 몫 값들(324)의 논리 표현들(예를 들어, 비트 벡터들)은 몫 값들을 업데이트하기 위해 시프트된다. 즉, 제수 값들(322)이 나머지 값들(326)보다 크기 때문에 몫 값들(324)의 논리 표현이 시프트된다. 다수의 예에서, 시프트는 또한 좌측 시프트 및/또는 하향 시프트로서 표현될 수 있다. 시프트는 메모리 셀에 저장된 비트의 비트가 원래 저장되었던 메모리 셀보다 큰 인덱스와 연관된 상이한 메모리 셀로의 복사하는 것을 수반할 수 있다. 예를 들어, 시프트는 감지 라인(305-0) 및 선택 라인(304-8)에 연결되는 메모리 셀에 저장된 비트(예를 들어, 0)는 감지 라인(305-0) 및 선택 라인(304-9)에 연결되는 메모리 셀로 복사된다. 상기 예에서, 감지 라인(305-0) 및 선택 라인(304-8)에 연결되는 메모리 셀은 감지 라인(305-0) 및 선택 라인(304-9)에 연결되는 메모리 셀과 연관되는 2와 동등한 인덱스보다 낮은 1과 동등한 인덱스와 연관된다.
도 3e는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3d에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3e에서, 마스크들(328) 모두가 0과 동등한 값을 갖기 때문에 모든 나머지 값(324)의 논리 표현이 또한 시프트된다(나머지 값(324)을 업데이트하기 위해). 예를 들어, 감지 라인(305-4) 및 선택 라인들(304-12 내지 304-15)에 연결되는 메모리 셀들에 저장된 비트가 감지 라인(305-4) 및 선택 라인들(304-13 내지 304-16)에 연결되는 메모리 셀들로 시프트된다. 감지 라인(305-4) 및 선택 라인(304-12)에 연결되는 메모리 셀에 저장된 비트는 감지 라인(305-4) 및 선택 라인들(304-13)에 연결되는 메모리 셀로 시프트(예를 들어, 복사)된다. 감지 라인(305-4) 및 선택 라인(304-12)에 연결되는 메모리 셀은 메모리 셀에 저장된 비트를 0과 동등하게 설정함으로써 공석이 된다. 시프트(예를 들어, 비트 벡터 [0001]로부터 비트 벡터 [0010]로)로 인해, 나머지 값들(326-4 및 326-5)은 이(2)의 값을 갖도록 업데이트된다.
이것이 나눗셈 연산의 제1 반복의 종료이다. 나눗셈 연산의 제2 반복(도 3a 내지 도 3k에 미도시)은 감지 라인(305-0) 내지 감지 라인(305-5) 및 선택 라인(304-2)에 연결되는 메모리 셀들에 저장된 비트들을 감지 라인(305-0) 내지 감지 라인(305-5) 및 선택 라인(304-12)에 연결되는 메모리 셀들로 복사하는 것을 포함한다. 제2 반복은 또한 마스크를 재생성하는 것을 포함할 수 있다. 제2 반복은 마스크가 1과 동등한 값을 갖는지 또는 0과 동등한 값을 갖는지를 결정하는 것을 포함할 수 있다. 제2 반복은 마스크가 1과 동등한 값을 갖는 것으로 결정된 경우 제수 값을 나머지 값에서 감산하는 것 및 결과의 논리 표현을 나머지 값으로 저장하는 것을 포함할 수 있다. 마스크가 일(1)과 동등한 값을 갖는다면, 몫 값의 논리 표현(비트 벡터)가 몫 값을 업데이트하기 위해 일(1)씩 시프트 및 증분된다. 마스크가 일(1)과 동등한 값을 갖고 감지 라인(305-0) 내지 감지 라인(305-5) 및 선택 라인(304-2)에 연결되는 메모리 셀들이 제1 인덱스를 갖지 않는다면, 감산 연산의 결과의 논리 표현이 나머지 값을 업데이트하기 위해 시프트된다.
도 3f는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3e에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3f에서, 피제수 값들(320)을 나타내는 비트 벡테들의 제1 인덱스와 연관된 메모리 셀들에 저장된 비트들이 나머지 값들(326)을 나타내는 비트-벡터들의 제1 인덱스와 연관된 메모리 셀들로 복사된다. 예를 들어, 감지 라인(320-0) 내지 감지 라인(320-5) 및 선택 라인(304-0)에 연결되는 메모리 셀들에 저장된 비트들이 감지 라인(320-0) 내지 감지 라인(320-5) 및 선택 라인(304-12)에 연결되는 메모리 셀로 복사된다.
도 3g는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3f에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3g에서, 마스크들(328)이 재-생성되었다. 예를 들어, 마스크(328-0)는 제수 값(322-0)(예를 들어, 4)이 나머지 값(326-0)(예를 들어, 5)보다 작기 때문에 1과 동등하다. 마스크(328-3)는 제수 값(322-3)(예를 들어, 3)이 나머지 값(326-6)(예를 들어, 0)보다 크기 때문에 0과 동등하다.
도 3h는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3g에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3h에서, 제수 값(322)은 연관된 마스크가 1과 동등했던 나머지 값(326)에서 감산되었다. 예를 들어, 제수 값(322-0)(예를 들어, 4)은 도 3g에서의 나머지 값(326-0)(예를 들어, 5)에서 감산되었고 결과가 도 3h에 예시된 바와 같이 나머지 값(326-0)(예를 들어, 1)을 저장하는 메모리 셀들에 저장되었다. 유사하게, 제수 값(322-4)(예를 들어, 5)은 도 3g에서의 나머지 값(326-4)(예를 들어, 8)에서 감산되었고 결과가 도 3h에 예시된 바와 같이 나머지 값(326-4)(예를 들어, 3)을 저장하는 메모리 셀들에 저장되었다. 그러나, 제수 값(322-3) 및 제수 값(322-5)은 연관된 마스크(328-3) 및 마스트(328-5)가 0과 동등하지 않았기 때문에 나머지 값(326-3 및 326-5)에서 감산되지 않았다.
도 3i는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3h에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3i에서, 몫 값들(324-0, 324-1, 324-2, 및 324-4)의 논리 표현은 대응하는 마스크들(328-0, 328-1, 328-2, 및 324-4)이 1과 동등했기 때문에 1씩 좌측 시프트 및 증분되었다. 예를 들어, 도 3h에서 몫 값(324-1)(예를 들어, 1)을 저장하는 메모리 셀들에 저장된 비트들이 몫 값을 2의 값으로 일시적으로 업데이트하기 위해 하향 시프트된다. 도 3i에서, 몫 값(324-1)(예를 들어, 일시적으로 2)의 논리 표현이 3과 동등한 업데이트된 값에 도 3i에서의 몫 값을 제공하기 위해 1씩 증분되었다.
도 3i에서, 나머지 값들(326-0, 326-1, 326-2, 326-4)의 논리 표현은 비트들이 감지 라인(320-0) 내지 감지 라인(320-5) 및 1과 동등한 인덱스를 갖는 선택 라인(304-0)에 연결되는 메모리 셀들로부터 복사되는 도 3f에서 복사되기 때문에 연관된 마스크 값들(328-0, 328-1, 328-2, 328-4)이 1과 동등하더라도 시프트되지 않는다. 즉, 복사할 더 이상의 비트가 존재하지 않고 나머지 값들(326-0, 326-1, 326-2, 326-4)이 나눗셈 연산의 최종 나머지 값들이다. 마찬가지로 몫 값들(324-0, 324-1, 324-2, 324-4)이 나눗셈 연산의 최종 몫 값이다.
그러나, 0과 동등한 값들 갖는 마스크들과 연관되는 몫 값들 및 나머지 값들의 논리 표현은 도 3j 및 도 3k에 도시된 바와 같이, 시프트될 것이다.
도 3j는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3i에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3j에서, 몫 값들(324-3, 324-5)의 논리 표현이 좌측 시프트된다. 예를 들어, 도 3i에서의 몫 값들(324-3, 324-5)은 이들이 좌측 시프트되기 전 0과 동등한 값을 그리고 이들이 좌측 시프트된 후 2와 동등한 값을 갖는다.
도 3k는 나눗셈 연산을 수행하는 것과 연관된 특정한 단계에서(예를 들어, 도 3j에 도시된 단계에 후속하는 단계에서) 어레이 부분(330)의 셀들의 상태들을 도시하는 논리 선도를 예시한다.
도 3k에서, 나머지 값들(326-3, 326-5)의 논리 표현이 좌측 시프트된다. 예를 들어, 도 3j에서의 나머지 값들(326-3, 326-5)은 이들이 좌측 시프트되기 전 0과 동등한 값을 그리고 이들이 좌측 시프트된 후 0과 동등한 값을 갖는다. 나머지 값들이 시프팅되기 전 0과 동등하기 때문에 시프팅은 나머지 값들(326-3, 326-5)에 대해 효과가 없고 결과적으로 나머지 값들의 0 비트들에서의 시프트는 나머지 값들에 영향을 미치지 않는다.
결론
본 발명은 감지 라인 나누셈을 위한 디바이스들 및 방법들을 포함한다. 예시적인 장치는 다음을 포함한다: 감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 제1 어드레스 공간은 피제수 값을 저장하는, 상기 제1 어드레스 공간. 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하는 메모리 어레이의 제2 어드레스 공간으로서, 제2 어드레스 공간은 제수 값을 저장하는, 상기 제2 어드레스 공간. 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하는 메모리 어레이의 제3 어드레스 공간으로서, 제3 어드레스 공간은 나머지 값을 저장하는, 상기 제3 어드레스 공간. 감지 회로는 피제수 값 및 제수 값을 수신하고, 피제수 값을 제수 값으로 나누며, 나눗셈의 나머지 결과를 제3 다수의 메모리 셀에 저장하도록 구성될 수 있다.
특정한 실시예들이 본 출원에서 예시 및 설명되었지만, 해당 기술분야에서의 통상의 기술자들은 동일한 결과들을 달성하기 위해 계산되는 배열이 도시된 특정한 실시예들에 대해 대체될 수 있다는 것을 이해할 것이다. 본 발명은 본 발명의 하나 이상의 실시예의 각색들 또는 변형예들을 커버하도록 의도된다. 상기 설명이 제한적 방식이 아니라, 예시적 방식으로 이루어졌다는 것이 이해되어야 한다. 상기 실시예들, 및 본 출원에서 구체적으로 설명되지 않은 다른 실시예들의 조합이 상기 설명의 리뷰 시 해당 기술분야의 통상의 기술자들에게 분명할 것이다. 본 발명의 하나 이상의 실시예들의 범위는 상기 구조들 및 방법들이 사용되는 다른 적용예들을 포함한다. 따라서, 본 발명의 하나 이상의 실시예의 범위는 첨부된 청구항들이 권리가 주어지는 균등물들의 전체 범위와 함께, 그러한 청구항들을 참조하여 결정되어야 한다.
앞에서의 상세한 설명에서, 몇몇 피처가 본 발명을 간소화하는 목적을 위해 단일 실시예로 함께 그룹화된다. 본 발명의 이러한 방법은 본 발명의 개시된 실시예들이 각 청구항에 명백하게 나열되는 것보다 많은 피처를 사용해야 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려 이하의 청구항들을 반영할 때, 발명의 청구 대상은 단일 개시된 실시예의 모든 피처보다 적은 특징에 놓인다. 이와 같이, 이하의 청구항들은 본 출원에 의해 상세한 설명으로 통합되며, 각 청구항은 그 자체를 개별 실시예로서 주장한다.

Claims (31)

  1. 나눗셈 연산들을 수행하기 위한 방법으로서,
    메모리 어레이의 감지 라인에 연결되는 N개의 메모리 셀의 제1 부분에 저장된 피제수 값(dividend value)의 논리 표현 및 상기 메모리 어레이의 상기 감지 라인에 연결되는 상기 다수의 메모리 셀의 제2 부분에 저장된 제수 값(divisor value)의 논리 표현을 사용하여 나눗셈 연산을 수행하는 단계;
    상기 메모리 어레이의 상기 감지 라인에 연결되는 상기 다수의 메모리 셀의 제3 부분에 상기 나눗셈 연산의 결과의 몫 값의 논리 표현을 저장하는 단계;
    상기 다수의 메모리 셀의 상기 제1 부분의 제N 메모리 셀에 저장된 비트를 상기 다수의 메모리 셀의 제4 부분의 제1 메모리 셀로 복사하는 단계로서, 상기 다수의 메모리 셀의 상기 제4 부분은 상기 나눗셈 연산의 상기 결과의 나머지 값의 논리 표현을 저장하는, 상기 복사하는 단계; 및
    상기 제수 값을 상기 나머지 값과 비교하는 단계를 포함하는, 나눗셈 연산들을 수행하기 위한 방법.
  2. 청구항 1에 있어서, 상기 감지 라인에 연결되는 상기 다수의 메모리 셀의 상기 제1 부분에 비트-벡터(bit-vector)로서 상기 피제수 값의 상기 논리 표현을 저장하는 단계를 더 포함하고, 상기 다수의 메모리 셀의 상기 제1 부분에서의 각 메모리 셀이 상기 비트-벡터로부터의 각각의 비트를 저장하는, 나눗셈 연산들을 수행하기 위한 방법.
  3. 청구항 1에 있어서, 상기 감지 라인에 연결되는 상기 다수의 메모리 셀의 상기 제2 부분에 비트-벡터로서 상기 제수 값의 상기 논리 표현을 저장하는 단계를 더 포함하고, 상기 다수의 메모리 셀의 상기 제2 부분에서의 각 메모리 셀이 상기 비트-벡터로부터의 각각의 비트를 저장하는, 나눗셈 연산들을 수행하기 위한 방법.
  4. 청구항 1에 있어서, 상기 몫 값의 상기 논리 표현을 저장하는 단계는 상기 감지 라인에 연결되는 상기 다수의 메모리 셀의 상기 제3 부분에 비트-벡터로서 상기 몫 값의 상기 논리 표현을 저장하는 단계를 포함하고, 상기 다수의 메모리 셀의 상기 제3 부분에서의 각 메모리 셀이 상기 비트-벡터로부터의 각각의 비트를 저장하는, 나눗셈 연산들을 수행하기 위한 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 제수 값이 상기 나머지 값 이하인 경우:
    상기 나머지 값에서 상기 제수 값을 감산하고 결과 값의 논리 표현을 상기 다수의 메모리 셀의 상기 제4 부분에 상기 나머지 값의 상기 논리 표현으로서 저장하는 단계;
    상기 몫 값을 업데이트하기 위해 상기 몫 값의 상기 논리 표현을 시프트(shift) 및 증분하는 단계; 및
    상기 나머지 값을 업데이트하기 위해 상기 나머지 값의 상기 논리 표현을 시프트하는 단계를 더 포함하는, 나눗셈 연산들을 수행하기 위한 방법.
  6. 청구항 5에 있어서, 상기 제수 값이 상기 나머지 값보다 큰 경우:
    상기 몫 값을 업데이트하기 위해 상기 몫 값의 상기 논리 표현을 시프트하는 단계; 및
    상기 나머지 값을 업데이트하기 위해 상기 나머지 값의 상기 논리 표현을 시프트하는 단계를 더 포함하는, 나눗셈 연산들을 수행하기 위한 방법.
  7. 청구항 6에 있어서,
    상기 다수의 메모리 셀의 상기 제1 부분의 제N-1 메모리 셀에 저장된 비트를 상기 다수의 메모리 셀의 상기 제4 부분의 상기 제1 메모리 셀로 복사하는 단계; 및
    상기 제수 값을 상기 나머지 값과 비교하는 단계를 더 포함하는, 나눗셈 연산들을 수행하기 위한 방법.
  8. 청구항 6에 있어서, 상기 비교에 반응하여 마스크를 생성하는 단계를 더 포함하고, 상기 마스크는 상기 제수 값이 상기 나머지 값 이하인지 또는 상기 제수 값이 상기 나머지 값보다 큰지를 나타내는, 나눗셈 연산들을 수행하기 위한 방법.
  9. 장치로서,
    감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 피제수 값을 저장하도록 구성되는, 상기 제1 어드레스 공간;
    상기 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제2 어드레스 공간으로서, 제수 값을 저장하도록 구성되는, 상기 제2 어드레스 공간;
    상기 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제3 어드레스 공간으로서, 나머지 값을 저장하도록 구성되는, 상기 제3 어드레스 공간; 및
    상기 메모리에 어레이에 연결되는 제어기로서:
    감지 회로로서:
    상기 피제수 값 및 상기 제수 값을 수신하고; 그리고
    상기 피제수 값을 상기 제수 값으로 나누기 위한, 상기 감지 회로; 및
    상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어하도록 구성되는, 상기 제어기를 포함하고;
    상기 감지 회로는 상기 메모리 어레이의 상기 메모리 셀들과 가장 좋은 상태로(on pitch) 형성되는 트랜지스터들을 포함하는, 장치.
  10. 청구항 9에 있어서, 상기 감지 라인에 연결되는 상기 제1 다수의 메모리 셀은 상기 감지 라인에 연결되는 N개의 메모리 셀을 포함하고, 상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한 상기 감지 회로는:
    상기 제1 다수의 메모리 셀의 제N 메모리 셀에 저장된 비트를 상기 제3 다수의 메모리 셀의 제1 메모리 셀로 복사하고; 그리고
    상기 제수 값을 상기 나머지 값과 비교하도록 제어가능한 상기 감지 회로를 포함하는, 장치.
  11. 청구항 10에 있어서, 상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어하도록 구성된 상기 제어기는:
    상기 제수 값이 상기 나머지 값 이하인 경우:
    상기 나머지 값에서 상기 제수 값을 감산하고 상기 제3 다수의 메모리 셀에 결과 값의 논리 표현을 저장하고; 그리고
    상기 나머지 값을 업데이트하기 위해 상기 결과 값의 상기 논리 표현을 시프트하기 위한 상기 감지 회로를 제어하도록 구성되는 상기 제어기를 포함하고,
    상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한 상기 감지 회로는 상기 메모리 어레이의 제4 어드레스 공간에 저장된 몫 값의 논리 표현을 시프트 및 증분하도록 제어가능한 상기 감지 회로를 더 포함하는, 장치.
  12. 청구항 11에 있어서, 상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한 상기 감지 회로는 상기 제수 값이 상기 나머지 값보다 큰 경우 상기 몫 값을 업데이트하기 위해 상기 몫 값의 상기 논리 표현을 시프트하도록 제어가능한 상기 감지 회로를 더 포함하는, 장치.
  13. 청구항 12에 있어서, 상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어도록 구성된 상기 제어기는 상기 제수 값이 상기 나머지 값보다 큰 경우 상기 나머지 값을 업데이트하기 위해 상기 나머지 값의 논리 표현을 시프트하기 위한 상기 감지 회로를 제어하도록 구성되는 상기 제어기를 포함하는, 장치.
  14. 청구항 13에 있어서, 상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한 상기 감지 회로는 상기 비교에 반응하여 마스크를 생성하도록 제어가능한 상기 감지 회로를 더 포함하고, 상기 마스크는 상기 제수 값이 상기 나머지 값 이하인지 또는 상기 제수 값이 상기 나머지 값보다 큰지를 나타내는, 장치.
  15. 청구항 9 내지 14 중 어느 한 항에 있어서,
    상기 감지 회로는 감지 라인 어드레스 액세스를 통해 데이터를 전달하지 않고 상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한, 장치.
  16. 청구항 9 내지 14 중 어느 한 항에 있어서, 상기 감지 회로는 상기 제1 다수의 메모리 셀, 상기 제2 다수의 메모리 셀, 및 상기 제3 다수의 메모리 셀과 가장 좋은 상태로(on pitch) 있는 트랜지스터들을 포함하는 컴퓨팅 구성요소를 포함하는, 장치.
  17. 다수의 나눗셈 연산을 수행하기 위한 방법으로서,
    메모리 어레이의 다수의 감지 라인에 연결되는 메모리 셀들의 다수의 제1 부분에 저장된 다수의 피제수 값을 상기 메모리 어레이의 상기 다수의 감지 라인에 연결되는 상기 메모리 셀의 다수의 제2 부분에 저장된 다수의 제수 값으로 나누는 단계로서,
    상기 메모리 셀들의 상기 다수의 제1 부분의 각각은 상기 다수의 감지 라인의 상이한 감지 라인에 연결되고 상기 다수의 피제수 값의 각각은 상기 다수의 제1 부분의 상이한 제1 부분에 저장되고; 그리고
    상기 메모리 셀들의 상기 다수의 제2 부분의 각각은 상기 다수의 감지 라인의 상이한 감지 라인에 연결되고 상기 다수의 제수 값의 각각은 상기 다수의 제2 부분의 상이한 제2 부분에 저장되는, 상기 다수의 제수 값으로 나누는 단계;
    상기 다수의 피제수 값을 상기 다수의 제수 값으로 나눈 결과의 다수의 몫 값을 상기 메모리 어레이의 상기 다수의 감지 라인에 연결되는 상기 메모리 셀들의 다수의 제3 부분에 저장하는 단계; 및
    상기 다수의 피제수 값을 상기 다수의 제수 값으로 다수의 나눈 상기 결과의 다수의 나머지 값을 상기 메모리 어레이의 상기 다수의 감지 라인에 연결되는 상기 메모리 셀들의 제4 부분에 저장하는 단계를 포함하고;
    상기 다수의 나눗셈 연산을 수행하기 위해 사용되는 다수의 계산이 상기 다수의 나눗셈 연산 중 임의의 나눗셈 연산을 수행하기 위해 사용되는 다수의 계산과 동일하고;
    상기 다수의 나눗셈 연산의 각각은 상기 다수의 제수 값으로부터의 각각의 제수 값으로 나눠지는 상기 다수의 피제수 값으로부터의 각각의 피제수 값을 포함하고, 상기 다수의 나눗셈 연산의 각각의 나눗셈 연산의 상기 피제수 값 및 상기 제수 값이 상기 다수의 감지 라인의 동일한 감지 라인에 연결되는 메모리 셀들에 저장되며; 그리고
    다수의 감지 라인에 연결되는 메모리 셀들의 상기 다수의 제1 부분의 각각은 상기 다수의 감지 라인 중 하나에 연결되는 N개의 메모리 셀을 포함하고;
    상기 다수의 피제수 값을 상기 다수의 제수 값으로 나누는 단계는 상기 다수의 메모리 셀의 상기 제1 부분들의 제N 메모리 셀들에 저장된 각 비트를 상기 다수의 메모리 셀의 상기 제4 부분들의 제1 메모리 셀들의 각각으로 복사하는 단계를 포함하고; 그리고
    상기 다수의 메모리 셀의 상기 제1 부분들의 상기 제N 메모리 셀에 저장된 각 비트를 복사하는 것에 수반되는 다수의 계산이 상기 다수의 피제수 값, 상기 다수의 제수 값, 및 상기 다수의 나머지 값의 크기에 관계없이 변하지 않는, 다수의 나눗셈 연산을 수행하기 위한 방법.
  18. 장치로서,
    감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 피제수 값을 저장하도록 구성되는, 상기 제1 어드레스 공간;
    상기 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제2 어드레스 공간으로서, 제수 값을 저장하도록 구성되는, 상기 제2 어드레스 공간;
    상기 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제3 어드레스 공간으로서, 나머지 값을 저장하도록 구성되는, 상기 제3 어드레스 공간; 및
    상기 메모리에 어레이에 연결되는 제어기로서:
    감지 회로로서:
    상기 피제수 값 및 상기 제수 값을 수신하고; 그리고
    상기 피제수 값을 상기 제수 값으로 나누기 위한, 상기 감지 회로; 및
    상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어하도록 구성되는, 상기 제어기를 포함하고;
    상기 감지 라인에 연결되는 상기 제1 다수의 메모리 셀은 상기 감지 라인에 연결되는 N개의 메모리 셀을 포함하고, 상기 피제수 값을 상기 제수 값으로 나누도록 제어가능한 상기 감지 회로는:
    상기 제1 다수의 메모리 셀의 제N 메모리 셀에 저장된 비트를 상기 제3 다수의 메모리 셀의 제1 메모리 셀로 복사하고; 그리고
    상기 제수 값을 상기 나머지 값과 비교하도록 제어가능한 상기 감지 회로를 포함하는, 장치.
  19. 장치로서,
    감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 피제수 값을 저장하도록 구성되는, 상기 제1 어드레스 공간;
    상기 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제2 어드레스 공간으로서, 제수 값을 저장하도록 구성되는, 상기 제2 어드레스 공간;
    상기 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제3 어드레스 공간으로서, 나머지 값을 저장하도록 구성되는, 상기 제3 어드레스 공간; 및
    상기 메모리에 어레이에 연결되는 제어기로서:
    감지 회로로서:
    상기 피제수 값 및 상기 제수 값을 수신하고; 그리고
    상기 피제수 값을 상기 제수 값으로 나누도록 구성되는, 상기 감지 회로; 및
    상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어하도록 구성되는, 상기 제어기를 포함하고;
    상기 감지 회로는 감지 라인 어드레스 액세스를 통해 데이터를 전달하지 않고 상기 피제수 값을 상기 제수 값으로 나누도록 구성되는, 장치.
  20. 장치로서,
    감지 라인에 그리고 제1 다수의 선택 라인에 연결되는 제1 다수의 메모리 셀을 포함하는 메모리 어레이의 제1 어드레스 공간으로서, 피제수 값을 저장하도록 구성되는, 상기 제1 어드레스 공간;
    상기 감지 라인에 그리고 제2 다수의 선택 라인에 연결되는 제2 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제2 어드레스 공간으로서, 제수 값을 저장하도록 구성되는, 상기 제2 어드레스 공간;
    상기 감지 라인에 그리고 제3 다수의 선택 라인에 연결되는 제3 다수의 메모리 셀을 포함하는 상기 메모리 어레이의 제3 어드레스 공간으로서, 나머지 값을 저장하도록 구성되는, 상기 제3 어드레스 공간; 및
    상기 메모리에 어레이에 연결되는 제어기로서:
    감지 회로로서:
    상기 피제수 값 및 상기 제수 값을 수신하고;
    상기 피제수 값을 상기 제수 값으로 나누도록 구성되는, 상기 감지 회로; 및
    상기 나머지 값을 상기 제3 어드레스 공간에 저장하는 것을 제어하도록 구성되는, 상기 제어기를 포함하고;
    상기 감지 회로는 상기 제1 다수의 메모리 셀, 상기 제2 다수의 메모리 셀, 및 상기 제3 다수의 메모리 셀과 가장 좋은 상태로(on pitch) 있는 트랜지스터들을 포함하는 컴퓨팅 구성요소를 포함하는, 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020167014823A 2013-11-08 2014-11-04 메모리에 대한 나눗셈 연산들 KR101862956B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/075,539 2013-11-08
US14/075,539 US9430191B2 (en) 2013-11-08 2013-11-08 Division operations for memory
PCT/US2014/063831 WO2015069628A1 (en) 2013-11-08 2014-11-04 Division operations for memory

Publications (2)

Publication Number Publication Date
KR20160082590A KR20160082590A (ko) 2016-07-08
KR101862956B1 true KR101862956B1 (ko) 2018-05-30

Family

ID=53041991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167014823A KR101862956B1 (ko) 2013-11-08 2014-11-04 메모리에 대한 나눗셈 연산들

Country Status (7)

Country Link
US (3) US9430191B2 (ko)
EP (1) EP3066665B1 (ko)
JP (1) JP6216878B2 (ko)
KR (1) KR101862956B1 (ko)
CN (1) CN105814637B (ko)
TW (1) TWI541718B (ko)
WO (1) WO2015069628A1 (ko)

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
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
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
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
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9496023B2 (en) * 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
WO2016126478A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for memory device as a store for program instructions
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
WO2016126474A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for parallel writing to multiple memory device locations
WO2016144724A1 (en) 2015-03-10 2016-09-15 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US9898253B2 (en) * 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
WO2016144726A1 (en) 2015-03-12 2016-09-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
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
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
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
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
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn 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
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
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
CN207637499U (zh) 2016-11-08 2018-07-20 美光科技公司 用于形成在存储器单元阵列上方的计算组件的设备
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
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
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
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
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
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
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
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
CN110175017B (zh) * 2019-05-23 2021-07-02 浙江大学 一种基于rram的乘法器及其操作方法
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
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100308858A1 (en) 2004-06-09 2010-12-09 Renesas Technology Corp. Semiconductor device and semiconductor signal processing apparatus

Family Cites Families (272)

* 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
US5276643A (en) 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
EP0354265B1 (de) * 1988-08-11 1993-12-29 Siemens Aktiengesellschaft Integrierte Halbleiterschaltung mit einem Speicherbereich
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
EP0446721B1 (en) 1990-03-16 2000-12-20 Texas Instruments Incorporated Distributed processing memory
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
KR940004434A (ko) 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
KR950004854B1 (ko) 1992-10-08 1995-05-15 삼성전자 주식회사 반도체 메모리 장치
US5485373A (en) 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
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
US5754478A (en) 1993-04-20 1998-05-19 Micron Technology, Inc. Fast, low power, write scheme for memory circuits using pulsed off isolation device
US5369622A (en) 1993-04-20 1994-11-29 Micron Semiconductor, Inc. Memory with isolated digit lines
JP2663838B2 (ja) 1993-07-27 1997-10-15 日本電気株式会社 半導体集積回路装置
JP3252306B2 (ja) 1993-08-10 2002-02-04 株式会社日立製作所 半導体不揮発性記憶装置
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US6173305B1 (en) 1993-11-30 2001-01-09 Texas Instruments Incorporated Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
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
JP2812262B2 (ja) 1995-08-31 1998-10-22 日本電気株式会社 連想記憶装置
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
JP2817836B2 (ja) 1995-11-30 1998-10-30 日本電気株式会社 半導体メモリ装置
JP3356612B2 (ja) 1996-02-29 2002-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速な輪郭スムージング方法及び装置
US6092186A (en) 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5915084A (en) 1996-09-30 1999-06-22 Advanced Micro Devices, Inc. Scannable sense amplifier circuit
US5991209A (en) 1997-04-11 1999-11-23 Raytheon Company Split sense amplifier and staging buffer for wide memory architecture
JP3592887B2 (ja) 1997-04-30 2004-11-24 株式会社東芝 不揮発性半導体記憶装置
US6510098B1 (en) 1997-05-28 2003-01-21 Cirrus Logic, Inc. Method and apparatus for transferring data in a dual port memory
JPH1115773A (ja) 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US5935263A (en) 1997-07-01 1999-08-10 Micron Technology, Inc. Method and apparatus for memory array compressed data testing
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6025221A (en) 1997-08-22 2000-02-15 Micron Technology, Inc. Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks
US5991785A (en) 1997-11-13 1999-11-23 Lucent Technologies Inc. Determining an extremum value and its index in an array using a dual-accumulation processor
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6163862A (en) 1997-12-01 2000-12-19 International Business Machines Corporation On-chip test circuit for evaluating an on-chip signal using an external test signal
JP3488612B2 (ja) 1997-12-11 2004-01-19 株式会社東芝 センス増幅回路
US5986942A (en) 1998-01-20 1999-11-16 Nec Corporation Semiconductor memory device
JPH11260057A (ja) 1998-03-13 1999-09-24 Nec Corp 半導体記憶装置
JPH11265995A (ja) 1998-03-17 1999-09-28 Mitsubishi Electric Corp 半導体記憶装置
JPH11306751A (ja) 1998-04-22 1999-11-05 Toshiba Corp 半導体記憶装置
US6005799A (en) 1998-08-06 1999-12-21 Silicon Aquarius Methods and circuits for single-memory dynamic cell multivalue data storage
US6141286A (en) 1998-08-21 2000-10-31 Micron Technology, Inc. Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines
US7409694B2 (en) 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
JP2000173269A (ja) 1998-12-08 2000-06-23 Mitsubishi Electric Corp 半導体記憶装置
KR100381968B1 (ko) 1998-12-30 2004-03-24 주식회사 하이닉스반도체 고속동작용디램
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US6134164A (en) 1999-04-22 2000-10-17 International Business Machines Corp. Sensing circuit for a memory cell array
US6741104B2 (en) 1999-05-26 2004-05-25 Micron Technology, Inc. DRAM sense amplifier for low voltages
US6157578A (en) 1999-07-15 2000-12-05 Stmicroelectronics, Inc. Method and apparatus for accessing a memory device
US6208544B1 (en) 1999-09-09 2001-03-27 Harris Corporation Content addressable memory cell providing simultaneous read and compare capability
US6578058B1 (en) 1999-10-06 2003-06-10 Agilent Technologies, Inc. System and method for comparing values from target systems
US7124221B1 (en) 1999-10-19 2006-10-17 Rambus Inc. Low latency multi-level communication interface
US6418498B1 (en) 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP4627103B2 (ja) 2000-01-18 2011-02-09 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法
WO2001057875A1 (fr) 2000-02-04 2001-08-09 Hitachi, Ltd. Dispositif semi-conducteur
US20010042069A1 (en) 2000-02-29 2001-11-15 Petrov Peter D. Method and apparatus for building a memory image
US7028170B2 (en) 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
JP3822412B2 (ja) 2000-03-28 2006-09-20 株式会社東芝 半導体記憶装置
US6965648B1 (en) 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
KR100872213B1 (ko) 2000-07-07 2008-12-05 모사이드 테크놀로지스, 인코포레이티드 메모리 소자에서의 읽기 명령 수행 방법
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
US7302582B2 (en) 2000-08-21 2007-11-27 United States Postal Service 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
US6625631B2 (en) * 2001-09-28 2003-09-23 Intel Corporation Component reduction in montgomery multiplier processing element
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
AU2003221680A1 (en) 2002-04-09 2003-10-27 The Research Foundation Of State University Of New York 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
JP4513305B2 (ja) * 2002-10-15 2010-07-28 ソニー株式会社 メモリ装置
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
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
US7574466B2 (en) 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
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 ローム株式会社 演算機能付き記憶装置および演算記憶方法
CN1846278B (zh) 2003-09-04 2010-04-28 Nxp股份有限公司 集成电路和高速缓冲存储器的重新映射方法
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
US7401281B2 (en) 2004-01-29 2008-07-15 International Business Machines Corporation Remote BIST high speed test and redundancy calculation
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
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
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
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual 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
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100720644B1 (ko) 2005-11-17 2007-05-21 삼성전자주식회사 메모리 장치 및 메모리 그 동작 방법
JP4804479B2 (ja) 2005-12-13 2011-11-02 スパンション エルエルシー 半導体装置およびその制御方法
JP5129450B2 (ja) 2006-01-16 2013-01-30 ルネサスエレクトロニクス株式会社 情報処理装置
US8077533B2 (en) 2006-01-23 2011-12-13 Freescale Semiconductor, Inc. Memory and method for sensing data in a memory using complementary sensing scheme
JP4989900B2 (ja) 2006-01-31 2012-08-01 ルネサスエレクトロニクス株式会社 並列演算処理装置
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
KR100755370B1 (ko) 2006-04-17 2007-09-04 삼성전자주식회사 반도체 메모리 장치
TW200828333A (en) 2006-04-28 2008-07-01 Samsung Electronics Co Ltd Sense amplifier circuit and sense amplifier-based flip-flop having the same
US7752417B2 (en) 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US8069377B2 (en) 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
US7724559B2 (en) 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7692466B2 (en) 2006-08-18 2010-04-06 Ati Technologies Ulc Sense amplifier based flip-flop
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US7471536B2 (en) 2006-12-08 2008-12-30 Texas Instruments Incorporated Match mismatch emulation scheme for an addressed location in a CAM
GB2444790B (en) * 2006-12-16 2011-08-03 David William Fitzmaurice Binary integer divider using numerically associative memory
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
WO2009052525A1 (en) 2007-10-19 2009-04-23 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 ルネサスエレクトロニクス株式会社 半導体信号処理装置
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
US8555037B2 (en) 2008-08-15 2013-10-08 Apple Inc. Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture
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
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
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
US20120246380A1 (en) 2009-10-21 2012-09-27 Avidan Akerib 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
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
DE112011105706T5 (de) 2011-10-28 2014-07-10 Hewlett-Packard Development Company, L.P. Zeilenverschiebender verschiebbarer Speicher
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
WO2013078085A1 (en) 2011-11-22 2013-05-30 Mips Technologies, Inc. Processor with kernel mode access to user space virtual addresses
CN105955704B (zh) 2011-11-30 2018-12-04 英特尔公司 用于提供向量横向比较功能的指令和逻辑
US20140108480A1 (en) 2011-12-22 2014-04-17 Elmoustapha Ould-Ahmed-Vall Apparatus and method for vector compute and accumulate
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
US20130286705A1 (en) 2012-04-26 2013-10-31 David B. Grover Low power content addressable memory hitline precharge and sensing circuit
US8938603B2 (en) 2012-05-31 2015-01-20 Samsung Electronics Co., Ltd. Cache system optimized for cache miss detection
US20130332707A1 (en) 2012-06-07 2013-12-12 Intel Corporation Speed up big-number multiplication using single instruction multiple data (simd) architectures
KR102062301B1 (ko) 2013-01-03 2020-01-03 삼성전자주식회사 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법
US20140215185A1 (en) 2013-01-29 2014-07-31 Atmel Norway Fetching instructions of a loop routine
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9424031B2 (en) 2013-03-13 2016-08-23 Intel Corporation Techniques for enabling bit-parallel wide string matching with a SIMD register
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9430191B2 (en) * 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
EP3140749B1 (en) 2014-05-08 2021-01-13 Micron Technology, INC. In-memory lightweight coherency
WO2015171914A1 (en) 2014-05-08 2015-11-12 Micron Technology, Inc. Hybrid memory cube system interconnect directory-based cache coherence methodology
US9747961B2 (en) * 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9898253B2 (en) * 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US10073786B2 (en) * 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9910637B2 (en) * 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US10042608B2 (en) * 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100308858A1 (en) 2004-06-09 2010-12-09 Renesas Technology Corp. Semiconductor device and semiconductor signal processing apparatus

Also Published As

Publication number Publication date
EP3066665B1 (en) 2018-10-24
US9430191B2 (en) 2016-08-30
US20180357042A1 (en) 2018-12-13
KR20160082590A (ko) 2016-07-08
CN105814637A (zh) 2016-07-27
EP3066665A4 (en) 2017-07-05
TW201531935A (zh) 2015-08-16
US20160306609A1 (en) 2016-10-20
US10579336B2 (en) 2020-03-03
TWI541718B (zh) 2016-07-11
WO2015069628A1 (en) 2015-05-14
CN105814637B (zh) 2018-06-26
US10055196B2 (en) 2018-08-21
JP2017503229A (ja) 2017-01-26
JP6216878B2 (ja) 2017-10-18
US20150134713A1 (en) 2015-05-14
EP3066665A1 (en) 2016-09-14

Similar Documents

Publication Publication Date Title
KR101862956B1 (ko) 메모리에 대한 나눗셈 연산들
US11205497B2 (en) Comparison operations in memory
US9940981B2 (en) Division operations in memory
US9940985B2 (en) Comparison operations in memory
KR101955126B1 (ko) 메모리에서 비교 연산
KR101889238B1 (ko) 메모리 내 스왑 동작들
US9153305B2 (en) Independently addressable memory array address spaces
WO2016036599A1 (en) Multiplication operations in memory
US10147467B2 (en) Element value comparison in memory
US10043570B1 (en) Signed element compare in memory

Legal Events

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