KR20170078633A - 벡터 처리를 위한 더블 바이어스 멤리스티브 내적 엔진 - Google Patents
벡터 처리를 위한 더블 바이어스 멤리스티브 내적 엔진 Download PDFInfo
- Publication number
- KR20170078633A KR20170078633A KR1020177011137A KR20177011137A KR20170078633A KR 20170078633 A KR20170078633 A KR 20170078633A KR 1020177011137 A KR1020177011137 A KR 1020177011137A KR 20177011137 A KR20177011137 A KR 20177011137A KR 20170078633 A KR20170078633 A KR 20170078633A
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- voltage
- electrodes
- row
- column
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 120
- 238000012545 processing Methods 0.000 title claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 34
- 238000003672 processing method Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 description 14
- 238000009826 distribution Methods 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 239000004065 semiconductor Substances 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000002485 combustion reaction Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Semiconductor Memories (AREA)
Abstract
벡터 처리를 위한 더블 바이어스 내적 엔진이 설명된다. 내적 엔진은 N X M 행렬 내에 포함된 값에 대응하는 정보를 저장하는 N X M 메모리 소자를 갖는 크로스바 어레이를 포함하는데, 여기서 각 메모리 소자는 멤리스티브 저장 디바이스이다. 제 1 및 제 2 벡터 입력 레지스터들은 N 개의 전압 입력을 포함하고, 각 전압 입력은 N X 1 개의 값을 갖는 벡터 내에 포함된 값에 대응한다. 벡터 입력 레지스터는 크로스바 어레이에 연결되어 전압 입력을 전극을 따라 2 개의 위치에서 N 개의 행 전극들의 각각에 공급한다. 벡터 출력 레지스터 또한 M 개의 열 전극의 각각으로부터 전압 출력을 수신하도록 포함된다.
Description
멤리스터라고 불리는 저항성 메모리 소자는, 멤리스터에 전기 전압 또는 전류를 인가함으로써 상이한 저항 상태들로 프로그램될 수 있는 디바이스이다. 프로그래밍 후, 멤리스터의 상태가 판독될 수 있다. 멤리스터의 상태는 디바이스를 비휘발성으로 간주할 만큼 충분히 긴 지정된 시간 동안 안정을 유지한다. 다수의 열 라인이 교차 지점에서 다수의 행 라인과 교차하는 크로스바 어레이 내에 다수의 멤리스터가 포함될 수 있으며, 멤리스터는 교차 지점에서 열 라인 및 행 라인에 연결된다.
첨부된 도면은 본 명세서에 설명된 원리의 다양한 예를 도시하고 명세서의 일부를 이룬다. 도시된 예들은 단지 예시일 뿐 청구 범위를 제한하지 않는다.
도 1은 본 명세서에서 설명된 원리의 일 예에 따라 내적(a dot product)을 결정하기 위한 컴퓨팅 시스템의 도면이다.
도 2a, 도 2b 및 도 2c는 본 명세서에서 개시된 원리의 일 예에 따른 크로스바 어레이의 각 교차점(cross point) 및 교차 지점(junction)에 위치한 멤리스티브 디바이스를 갖는 크로스바 어레이의 도면이다.
도 3은 본 명세서에 개시된 원리의 일 예에 따른 멤리스티브 내적 엔진의 도면이다.
도 4a 및 도 4b는 본 명세서에 개시된 원리의 일 예에 따른 도 3의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들의 그래프이다.
도 5는 본 명세서에 개시된 원리의 다른 예에 따른 더블 바이어스 멤리스티브 내적 엔진의 도면이다.
도 6a 및 도 6b는 본 명세서에 개시된 원리의 일 예에 따른 도 5의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들을 도시한다.
도 7a 및 도 7b는 본 명세서에 개시된 원리의 예들에 따른 도 3 및 도 5의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들의 차이의 그래프이다.
도 8은 본 명세서에 개시된 원리의 다른 예에 따른 더블 바이어스 멤리스티브 내적 엔진의 도면이다.
도 9는 본 명세서에 개시된 원리의 일 예에 따른 크로스바 어레이를 갖는 더블 바이어스 멤리스티브 내적 엔진을 이용하는 벡터 처리 방법을 도시하는 흐름도이다.
도 1은 본 명세서에서 설명된 원리의 일 예에 따라 내적(a dot product)을 결정하기 위한 컴퓨팅 시스템의 도면이다.
도 2a, 도 2b 및 도 2c는 본 명세서에서 개시된 원리의 일 예에 따른 크로스바 어레이의 각 교차점(cross point) 및 교차 지점(junction)에 위치한 멤리스티브 디바이스를 갖는 크로스바 어레이의 도면이다.
도 3은 본 명세서에 개시된 원리의 일 예에 따른 멤리스티브 내적 엔진의 도면이다.
도 4a 및 도 4b는 본 명세서에 개시된 원리의 일 예에 따른 도 3의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들의 그래프이다.
도 5는 본 명세서에 개시된 원리의 다른 예에 따른 더블 바이어스 멤리스티브 내적 엔진의 도면이다.
도 6a 및 도 6b는 본 명세서에 개시된 원리의 일 예에 따른 도 5의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들을 도시한다.
도 7a 및 도 7b는 본 명세서에 개시된 원리의 예들에 따른 도 3 및 도 5의 크로스바 어레이의 상부 표면 및 하부 표면에서 측정된 전압 값들의 차이의 그래프이다.
도 8은 본 명세서에 개시된 원리의 다른 예에 따른 더블 바이어스 멤리스티브 내적 엔진의 도면이다.
도 9는 본 명세서에 개시된 원리의 일 예에 따른 크로스바 어레이를 갖는 더블 바이어스 멤리스티브 내적 엔진을 이용하는 벡터 처리 방법을 도시하는 흐름도이다.
빠르고 효율적인 벡터-행렬 처리 기술의 필요성이 많은 컴퓨팅 애플리케이션에서 대두되고 있다. 예를 들어, 벡터-행렬 연산은 몇 가지만 예를 들면 데이터 압축, 디지털 데이터 처리, 신경망, 암호화 및 최적화 등에서 이용된다. 멤리스티브 크로스바 어레이는 벡터-행렬 또는 내적 계산을 수행하는 데 사용할 수 있다. 예를 들어, 크로스바의 각 행으로부터의 입력 전압 신호는 각 열 내의 저항성 디바이스의 컨덕턴스에 의해 가중되고 각 열로부터의 전류 출력으로 누적된다. 이상적으로 와이어 저항을 무시할 수 있는 경우, 멤리스티브 크로스바 어레이의 각 멤리스터로부터의 요인을 포함하는 크로스바 어레이에서 흘러나오는 전류 벡터 I는 대략 IT = VTG가 되며, 여기서 V는 입력 전압 벡터이고 G는 컨덕턴스 행렬이다.
크로스바 어레이의 각각의 교차점 또는 교차 지점에서 멤리스터를 사용하는 것은 G 값에 대응하는 각 교차 지점에서 저항(또는 컨덕턴스)을 프로그래밍할 수 있게 하여 내적 엔진(DPE)으로서 크로스바 어레이의 사용으로 이어진다. 그러나, 실제 회로는 각 교차 지점의 멤리스터뿐만 아니라 각 열 또는 행을 따라 멤리스터를 연결하는 와이어, 라인 또는 전극에도 저항을 가진다. 와이어에 기인하는 저항은 각 행 또는 열을 따라 신호 감쇠(예컨대: 전압 감소)를 초래할 수 있다. 본 명세서에 제공된 개시 내용은 크로스바 어레이의 행들 및 열들을 따라 멤리스터들을 연결하는 와이어, 라인 및 전극에서의 저항에 의해 야기된 신호 감쇠를 감소시키는 멤리스터 기반 크로스바 어레이 이용 방법 및 벡터-행렬 처리 시스템을 설명한다.
본 명세서에 개시된 원리의 다양한 예들은, 크로스바-메모리 시스템들과, 벡터-행렬 계산 수행에서의 그들의 사용에 관한 것이다. 멤리스터 크로스바 어레이는 행렬을 구현하며 예를 들어 그래픽 처리 장치 또는 유사한 가속기와 비교할 때 벡터 처리에서 성능이 크게 향상될 수 있다. 멤리스터의 낮은 작동 에너지는 또한 전력 소비의 상당한 감소로 이어질 수 있다.
이하의 설명에서, 설명의 목적으로, 본 시스템 및 방법의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 본 장치, 시스템 및 방법이 이들 특정 세부 사항 없이 실시될 수 있다는 것은 당업자에게 명백할 것이다. 명세서에서 "예(an example)" 또는 유사한 언어를 언급한다는 것은 그 예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 설명된 바와 같이 포함되지만 다른 예들에는 포함되지 않을 수 있음을 의미한다.
이제 도면을 참조하면, 도 1은 본 명세서에서 설명된 원리의 일 예에 따른, 내적을 결정하기 위한 컴퓨팅 시스템(100)의 도면이다. 컴퓨팅 시스템(100)은 전자 디바이스에 구현될 수 있다. 전자 디바이스의 예들은 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 개인용 정보 단말기(PDAs), 모바일 디바이스, 스마트폰, 게임 시스템 및 태블릿, 그 외 다른 전자 디바이스를 포함한다.
컴퓨팅 시스템(100)은 독립형 하드웨어, 모바일 애플리케이션, 컴퓨팅 네트워크를 통한 또는 이들의 조합을 포함하는 임의의 데이터 처리 시나리오에서 이용될 수 있다. 또한, 컴퓨팅 시스템(100)은 컴퓨팅 네트워크, 공용 클라우드 네트워크, 사설 클라우드 네트워크, 하이브리드 클라우드 네트워크, 다른 형태의 네트워크, 또는 이들의 조합에 사용될 수 있다. 일 예에서, 컴퓨팅 시스템(100)에 의해 제공되는 방법은 예를 들어 제3자에 의한 네트워크를 통한 서비스로서 제공된다. 이 예에서, 서비스는 예를 들어: 다수의 애플리케이션을 호스팅하는 SaaS(a Software as a Service); 예컨대, 운영 체제, 하드웨어 및 스토리지, 그 외 다른 것을 포함하는 컴퓨팅 플랫폼을 호스팅하는 PaaS(a Platform as a Service); 예컨대, 서버, 스토리지 구성 요소, 네트워크 및 구성 요소, 그 외 다른 것과 같은 장비를 호스팅하는 IaaS(an Infrastructure as a Service); APIaaS(application program interface(API) as a Service); 다른 형태의 네트워크 서비스; 또는 이들의 조합을 포함할 수 있다. 본 시스템은 하나 또는 다수의 하드웨어 플랫폼상에서 구현될 수 있는데, 여기서 시스템 안의 모듈들은 하나의 플랫폼 상에서 또는 다수의 플랫폼에 걸쳐 실행될 수 있다. 이러한 모듈은 다양한 형태의 클라우드 기술 및 하이브리드 클라우드 기술에서 실행되거나 클라우드 상에서 또는 클라우드 밖에서 구현될 수 있는 SaaS(Software as a service)로 제공된다. 다른 예에서, 컴퓨팅 시스템(100)에 의해 제공되는 방법은 로컬 관리자에 의해 실행된다.
바람직한 기능을 달성하기 위해, 컴퓨팅 시스템(100)은 다양한 하드웨어 구성 요소를 포함한다. 이들 하드웨어 구성 요소들 중에는 다수의 프로세서(101), 다수의 데이터 저장 디바이스(102), 다수의 주변 디바이스 어댑터(103) 및 다수의 네트워크 어댑터(104)가 있을 수 있다. 이러한 하드웨어 구성 요소들은 다수의 버스 및/또는 네트워크 연결을 사용하여 상호 접속될 수 있다. 일 예에서, 프로세서(101), 데이터 저장 디바이스(102), 주변 디바이스 어댑터(103) 및 네트워크 어댑터(104)는 버스(105)를 통해 통신 가능하게 연결될 수 있다.
프로세서(101)는 데이터 저장 디바이스(102)로부터 실행 가능한 코드를 검색하고 실행 코드를 실행하는 하드웨어 아키텍처를 포함할 수 있다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금, 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인들에 다수의 제 1 전압들을 인가하는 기능을 적어도 구현하게 하여 행 라인들 및 열 라인들 간의 교차 지점들에 위치한 대응하는 다수의 멤리스터들의 저항값들을 변화시키는데, 여기서 제 1 전압들은 행렬 내의 대응하는 다수의 값들을 나타낸다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금 또한, 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인들에 다수의 제 2 전압들을 인가하는 기능을 적어도 구현하게 할 수 있는데, 여기서 제 2 전압들은 대응하는 다수의 벡터 값들을 나타낸다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금 추가로, 열 라인들로부터 출력 전류를 수집하는 기능을 적어도 구현하게 할 수 있는데, 여기서 수집된 출력 전류는 내적을 나타낸다. 컴퓨팅 시스템(100)의 기능은 여기에 설명된 본 명세서의 방법에 따른다. 코드를 실행하는 과정에서, 프로세서(101)는 다수의 나머지 하드웨어 유닛으로부터 입력을 수신하고 다수의 나머지 하드웨어 유닛에 출력을 제공할 수 있다.
데이터 저장 디바이스(102)는 프로세서(101) 또는 다른 처리 디바이스에 의해 실행되는 실행 가능한 프로그램 코드와 같은 데이터를 저장할 수 있다. 논의될 바와 같이, 데이터 저장 디바이스(102)는 특히, 프로세서(101)가 적어도 여기에 설명된 기능을 구현하기 위해 실행하는 다수의 애플리케이션을 나타내는 컴퓨터 코드를 저장할 수 있다.
데이터 저장 디바이스(102)는 휘발성 및 비휘발성 메모리를 포함하는 다양한 유형의 메모리 모듈을 포함할 수 있다. 예를 들어, 본 예의 데이터 저장 디바이스(102)는 랜덤 액세스 메모리(RAM)(106), 판독 전용 메모리(ROM)(107) 및 하드 디스크 드라이브(HDD) 메모리(108)를 포함한다. 많은 다른 유형의 메모리가 또한 이용될 수 있으며, 본 명세서는 본 명세서에서 설명된 원리의 특정 응용에 적합할 것 같은 데이터 저장 디바이스(102)에서의 많은 다양한 유형(들)의 메모리의 사용을 고려한다. 특정 예에서, 데이터 저장 디바이스(102)의 상이한 유형의 메모리가 상이한 데이터 저장 요구에 사용될 수 있다. 예를 들어, 특정 예에서, 프로세서(101)는, ROM(107)으로부터 부팅하고, HDD 메모리(108) 내에 비휘발성 저장을 유지하며, RAM(106) 내에 저장된 프로그램 코드를 실행시킬 수 있다.
데이터 저장 디바이스(102)는 컴퓨터 판독 가능 매체, 컴퓨터 판독 가능 저장 매체 또는 비일시적 컴퓨터 판독 가능 매체 등을 포함할 수 있다. 예를 들어, 데이터 저장 디바이스(102)는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는 예를 들어 다수의 와이어를 갖는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 이 문서에서, 컴퓨터 판독 가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의한 사용을 위해 또는 그들과 관련하여 사용하기 위해 컴퓨터 이용 가능 프로그램 코드를 포함하거나 저장할 수 있는 임의의 유형의 매체일 수 있다. 다른 예에서, 컴퓨터 판독 가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의한 사용을 위해 또는 그들과 관련하여 사용하기 위해 프로그램을 포함하거나 저장할 수 있는 임의의 비일시적 매체일 수 있다.
컴퓨팅 시스템(100)의 하드웨어 어댑터(103, 104)는 프로세서(101)가 컴퓨팅 시스템(100)의 외부 및 내부의 다양한 다른 하드웨어 요소와 인터페이스할 수 있게 한다. 예를 들어, 주변 디바이스 어댑터(103)는 예를 들어 디스플레이 디바이스(109), 마우스 또는 키보드와 같은 입/출력 디바이스에 인터페이스를 제공할 수 있다. 주변 디바이스 어댑터(103)는 또한, 외부 저장 디바이스, 예컨대 서버, 스위치 및 라우터와 같은 다수의 네트워크 디바이스, 클라이언트 디바이스, 다른 유형의 컴퓨팅 디바이스, 및 이들의 조합과 같은 다른 외부 디바이스로의 액세스를 제공할 수 있다.
디스플레이 디바이스(109)는 컴퓨팅 시스템(100)의 사용자가 컴퓨팅 시스템(100)과 상호 작용하고 그 기능을 구현할 수 있도록 제공될 수 있다. 또한, 주변 디바이스 어댑터(103)는 프로세서(101)와 디스플레이 디바이스(109), 프린터 또는 다른 매체 출력 디바이스 사이의 인터페이스를 생성할 수 있다. 네트워크 어댑터(104)는 예를 들어 네트워크 내의 다른 컴퓨팅 디바이스에 인터페이스를 제공하여, 컴퓨팅 시스템(100)과 네트워크 내에 위치한 다른 디바이스 사이에서 데이터의 송신을 가능하게 할 수 있다.
컴퓨팅 시스템(100)은 프로세서(101)에 의해 실행될 때, 실행 가능 프로그램 코드와 연관된 디스플레이 디바이스(109) 상에, 데이터 저장 디바이스(102)에 저장되어 있는 애플리케이션들의 개수를 나타내는 수의 그래픽 사용자 인터페이스들(GUIs)을 디스플레이할 수 있다. 아래 더 상세히 설명되는 바와 같이, GUI는 예를 들어 사용자가 컴퓨팅 시스템(100)과 상호 작용하여 더블 바이어스 내적 엔진(DPE) 멤리스티브 어레이(110)와 관련하여 행렬 및 벡터 값을 입력할 수 있게 하는 대화형 스크린 샷을 디스플레이할 수 있다. 또한, 디스플레이 디바이스(109)의 GUI 상에 다수의 대화식 제스처를 생성함으로써, 사용자는 입력 데이터에 기초하여 내적 값을 얻을 수 있다. 디스플레이 디바이스(109)의 예는 다른 디스플레이 디바이스들 중에서도 컴퓨터 스크린, 랩탑 스크린, 모바일 디바이스 스크린, 개인 휴대 정보 단말기(PDA) 스크린 및 태블릿 스크린을 포함한다.
컴퓨팅 시스템(100)은 더블 바이어스 DPE 멤리스티브 어레이(110)를 더 포함할 수 있다. 이하 더 상세히 설명되는 바와 같이, 더블 바이어스 DPE 멤리스티브 어레이(110)는 다수의 입력들의 가중 합을 수행하기 위해 어레이 내에서 함께 기능하는 다수의 멤리스터들을 포함하는 다수의 소자들을 포함한다. 더블 바이어스 DPE 멤리스티브 어레이(110)는 다수의 애플리케이션에 사용될 수 있다. 예를 들어, 더블 바이어스 DPE 멤리스티브 어레이(110)는 임계 논리 게이트(a threshold logic gate; TLG)로서 사용되어, 행렬 곱을 수행하여, 출력을 임계치와 비교할 수 있다. 따라서, 더블 바이어스 DPE 멤리스티브 어레이(110)는, 더 범용 목적인 처리 디바이스에서 실행되는 소프트웨어에서 가능한 것보다 더 빠르게 더블 바이어스 DPE 멤리스티브 어레이(110)가 다수의 기능들을 수행하는 가속기로서 사용될 수 있다. 더블 바이어스 DPE 멤리스티브 어레이(110)가 컴퓨팅 시스템(100) 내부의 디바이스로서 도시되어 있지만, 다른 예에서, 더블 바이어스 DPE 멤리스티브 어레이(110)는 컴퓨팅 시스템(100)에 연결된 주변 디바이스일 수 있거나, 컴퓨팅 시스템(100)에 연결된 주변 디바이스 내에 포함될 수 있다.
컴퓨팅 시스템(100)은 본 명세서에서 설명된 시스템 및 방법의 구현에 사용되는 다수의 모듈을 더 포함한다. 컴퓨팅 시스템(100) 내의 다양한 모듈은 개별적으로 실행될 수 있는 실행 가능한 프로그램 코드를 포함한다. 이 예에서, 다양한 모듈은 별개의 컴퓨터 프로그램 제품으로 저장될 수 있다. 다른 예에서, 컴퓨팅 시스템(100) 내의 다양한 모듈은 다수의 컴퓨터 프로그램 제품 내에서 결합될 수 있다; 각 컴퓨터 프로그램 제품은 다수의 모듈을 포함한다.
컴퓨팅 시스템(100)은, 프로세서(101)에 의해 실행될 때 더블 바이어스 DPE 멤리스티브 어레이(110)의 기능을 돕기 위한 내적 엔진 모듈(111)을 포함할 수 있다. 예를 들어, 내적 엔진 모듈(111)은 내적 수학 계산에서 처리될 행렬을 정의하는 다수의 입력 값을 수신한다. 내적 엔진 모듈(111)은, 더블 바이어스 DPE 멤리스티브 어레이(110) 내의 다수의 멤리스터로의 프로그래밍 신호로서 입력 값을 더블 바이어스 DPE 멤리스티브 어레이(110)에 전송하여 멤리스터를 프로그래밍할 수 있다. 내적 엔진 모듈(111)은 또한 멤리스터에 프로그래밍된 행렬과 관련하여 처리될 벡터 입력을 수신할 수 있다. 내적 엔진 모듈(111)은 내적을 나타내는 값을 더 획득하고, 그 값을 분석 또는 추가 처리하기 위해 그 값을 컴퓨팅 시스템(100) 또는 다른 컴퓨팅 디바이스에 데이터로서 전달할 수 있다.
도 2a, 도 2b 및 도 2c는 본 명세서에 개시된 원리의 일 예에 따른 크로스바 어레이의 각 교차점 또는 교차 지점에 위치한 멤리스티브 디바이스(206)를 갖는 크로스바 어레이(200)를 도시한다. 도 2a에서, 제 1 층의 대략 평행한 전극들(202)은 제 2 층의 대략 평행한 전극들(204)에 의해 덮여있다. 단순화를 위해, 제 1 층의 평행 전극들(202) 중 하나와 제 2 층의 평행 전극들(204) 중 하나가 참조 번호로 표시된다. 층들 사이의 방향 각도는 변할 수 있지만, 제 2 층의 전극들(204)은 제 1 층의 전극들(202)에 대해 방향이 대략 수직이다. 전극들의 두 층들은 격자 또는 크로스바를 형성하며, 두 전극들(202, 204) 사이의 가장 가까운 접촉을 나타내는 전극 교차로(electrode intersections)에서 제 2 층의 각 전극(204)은 제 1 층의 전극들(202)을 덮고 제 1 층의 각 전극(202)과 가까운 접촉을 이룬다. 주어진 격자 방향에서, 제 1 층의 전극(202)은 열로 설명될 수 있는 반면, 제 2 층의 전극(204)은 행으로 설명될 수 있다. 도 2a의 개별 전극(202, 204)이 직사각형 단면으로 도시되었지만, 전극은 또한 정사각형, 원형, 타원형 또는 보다 복잡한 단면을 가질 수 있다. 전극(202, 204)은 또한 많은 상이한 폭 또는 직경 및 종횡비(aspect ratios) 또는 편심(eccentricities)을 가질 수 있다. 용어 "크로스바(crossbar)"는 전극뿐만 아니라 서브 마이크로 스케일 와이어, 마이크로 스케일 와이어 또는 보다 큰 치수를 갖는 와이어의 층 또는 층들을 구비한 크로스바를 지칭할 수 있다.
전극 교차로에서, 저항 및 다른 전자 구성요소와 같은 전자 구성요소는 2 개의 중첩 전극(202, 204)을 상호 연결하도록 제조될 수 있다. 전자 구성요소로 연결된 전극 교차로를 때때로 "크로스바 교차 지점(crossbar junction)"이라고 한다. 도 2b 및 도 2c는 크로스바 어레이 내의 2 개의 연속적인 층들인 전극 열(202) 및 행(204)을 상호 접속시키는 크로스바 교차 지점(210)의 2 개의 상이한 예시를 제공한다. 크로스바 교차 지점(210)은 두 전극들(202, 204) 사이의 물리적 접촉을 포함할 수도 포함하지 않을 수도 있다. 도 2b에 도시된 바와 같이, 2 개의 전극들(202, 204)은 그들의 중첩 지점에서 물리적으로 접촉하지 않지만, 전극들(202,204)은 그들의 가장 가까운 중첩 지점에서 2 개의 전극들(202, 204) 사이에 있는 멤리스티브 소자(206)에 의해 스패닝된다. 도 2c는 도 2b에 도시된 멤리스티브 소자(206) 및 중첩 전극(202, 204)의 개략도를 도시한다. 멤리스티브 소자(206)는 나머지 도면들에 걸쳐 크로스바 교차 지점에 위치한 멤리스터 및 임의의 연관된 회로를 나타내는데 사용될 수 있다.
도 3은 본원에 개시된 원리의 일 예에 따른 전압 입력들의 단일 벡터를 갖는 멤리스티브 내적 엔진(300)을 도시한다. 내적 엔진(300)은 N 개의 행 전극(304) 및 M 개의 열 전극(306)을 포함하는 크로스바 어레이(302)를 포함한다. 크로스바 어레이(302) 전체에 걸친 크로스바 교차 지점은 멤리스티브 소자(308)를 포함한다. 내적 엔진(300)은, 행 전극(304)에 전압을 인가하는 벡터 입력 레지스터 또는 벡터 입력(a vector input register or vector input)(310)과, 열 전극(306) 내의 전류 흐름으로부터 얻어진 출력 전압을 수신하는 벡터 출력 레지스터 또는 벡터 출력(a vector output register or vector output)(314)을 포함한다. 내적 엔진(300)은 열 전극(306) 내의 전기 전류를 전압으로 변환하는 감지 회로(316)도 포함한다. 본 명세서에서 설명된 원리의 예에서, 감지 회로(316)는 연산 증폭기(318) 및 저항(320)을 포함하는데, 이들은 판독 동작을 위한 가상 접지를 나타내도록 배치될 수 있다.
내적 엔진(300)은 또한 저장 디바이스로서 사용되는 크로스바 어레이(302)와 연관된 다른 주변 회로를 포함할 수 있다. 예를 들어, 벡터 입력(310)은 행 전극(304)에 연결된 드라이버를 포함할 수 있다. 어드레스 디코더는 행 전극(304)을 선택하고 선택된 행 전극(304)에 대응하는 드라이버를 활성화하는데 사용될 수 있다. 선택된 행 전극(304)을 위해 드라이버는, 대응하는 행 전극(304)을 벡터-행렬 곱들에 대응하는 상이한 전압들로 구동하거나, 크로스바 어레이(302)의 멤리스티브 소자들(308) 내의 저항 값들을 설정하는 프로세스를 구동할 수 있다. 열 전극(306)을 위한 유사한 드라이버 및 디코더 회로가 포함될 수 있다. 제어 회로는 또한 입력에서의 전압 인가와, 내적 엔진(300)의 출력에서의 전압 판독을 제어하는 데 사용될 수 있다. 디지털-아날로그 회로 및 아날로그-디지털 회로는 벡터 입력(310) 및 벡터 출력(314)에서 사용될 수 있다. 행 전극(304) 및 열 전극(306)으로의 입력 신호는 아날로그 또는 디지털일 수 있다. 전술한 주변 회로는 위 예의 크로스바 어레이(302)와 동일한 집적 구조 또는 반도체 다이에서 반도체 처리 기술을 사용하여 제조될 수 있다.
이 연산에서, N×M 크로스바 어레이(302)의 행(304)을 따라 전압 VI(310) 세트를 인가하고 열(306)을 통해 전류를 수집하고 출력 전압 VO(314)을 측정함으로써, 벡터와 행렬 곱이 내적 엔진(300)을 통해 실행될 수 있다. 각 열에서, 모든 입력 전압(310)은 대응하는 멤리스턴스(1/Gij)에 의해 가중되고, 가중된 합은 출력 전압(314)에서 반영된다. 옴의 법칙을 사용하여 입력 전압(310)과 출력 전압(314) 사이의 관계는 {VO}T = -{VI}T[G]RS 형태의 벡터 행렬 곱으로 나타내어질 수 있고, 여기서, Gij는 크로스바 어레이(302)의 컨덕턴스(저항의 역수)에 의해 결정된 N X M 행렬이고, RS는 감지 증폭기의 저항 값이고, T는 각각이 M X 1 벡터 및 N X 1 벡터인 VO 및 VI의 전치 행렬을 나타낸다. 네거티브 부호는 감지 증폭기에서 네거티브 피드백 연산 증폭기의 사용을 따른다. 위와 같은 내용으로부터, 내적 엔진(300)은 벡터 처리에 이용될 수 있고, 보다 구체적으로, 제 1 벡터 값{bi}T에 행렬 값 [aij]을 곱하여 제 2 벡터 값{cj}T을 구하는 데 이용될 수 있는데, 여기서, i = 1, N이고, j = 1, M이다. 벡터 연산은 다음과 같이 보다 상세히 설명될 수 있다.
여기서 설명된 원리를 사용하는 벡터 처리 또는 곱셈은 일반적으로 행렬 값 [aij]을 크로스바 어레이(302)에 매핑시킴으로써 시작되거나, 달리 말해, 컨덕턴스 값 Gij을 크로스바 어레이(302)의 크로스바 교차 지점에 프로그래밍(예컨대, 쓰기(writing))함으로써 시작된다. 도 3을 계속 참조하면, 일 예에서, 각각의 컨덕턴스 값 Gij은 각각의 크로스바 교차 지점(도 2, 210)에 걸쳐 전압 강하를 순차적으로 가함으로써 설정된다. 예를 들면, 컨덕턴스 값 G2,3은 크로스바 어레이(302)의 2번째 행에 VRow2와 같은 전압을 인가함으로써 그리고 크로스바 어레이(302)의 3번째 열에 VCol3와 같은 전압을 인가함으로써 설정될 수 있다. 도 3을 참조하면, 일 예에서, 전압 입력 VRow2는, j = 1 열 전극과 인접한 2번째 행 전극에서 발생하는 위치(330)에서 2번째 행에 인가될 것이다. 전압 입력 VCol3는 i = 1 또는 i = N 위치와 인접한 3번째 열 전극에 인가될 것이다. 열 전극(306)에 전압을 인가할 때, 해당 전극용 감지 회로(316)는 스위치 아웃(switch out)될 것이고 전압 드라이버는 스위치인(switch in)될 것이다. 전위차 VRow2-VCol3는 교차 지점에 위치한 멤리스티브 소자(308)의 특성에 기초하여 일반적으로 결과 컨덕턴스 값G2 ,3을 결정할 것이다. 이러한 접근에 따르면, 선택되지 않은 열들(306) 및 행들(304)은 몇몇 구조들, 예컨대, 모든 선택되지 않은 열들(306) 및 행들(304)을 플로팅하거나 모든 선택되지 않은 열들(306) 및 행들(304)을 접지시키는 것을 포함하는 구조들 중 하나에 따라 어드레싱될 것이다. 다른 구조는 열들(306)을 접지시키는 것 또는 열들(306)의 일부를 접지시키는 것을 포함한다. 선택되지 않은 열들(306) 및 행들(304) 모두를 접지시키는 것은 선택되지 않은 열들(306) 및 행들(304)을 분리시키는 데 도움이 되어 선택된 출력 열로의 누설 경로 전류를 최소화한다는 이점이 있다. 이어지는 프로그래밍, 내적 엔진(300)의 동작은 입력 전압(310)의 벡터를 인가하고 출력 전압(314)의 벡터를 판독함으로써 진행된다.
본원에 개시된 원리의 일 예에 따라, 내적 엔진(300)에 사용된 멤리스터는 선형 전류-전압 관계를 갖는다. 선형 전류-전압 관계는 벡터 곱셈 과정에서 더 높은 정확도를 허용한다. 그러나, 선형 멤리스터를 갖는 크로스바 어레이(302)는, 특히 크로스바 어레이(302)의 크기가 특정 크기, 예를 들어, 32x32보다 클 때 어레이(302)의 프로그래밍 동안 큰 누설 경로 전류를 갖는 경향이 있다. 이러한 경우에, 대부분의 전류가 누설 경로를 통과하기 때문에 선택된 멤리스터를 통해 흐르는 전류는 멤리스터를 프로그램하기에 충분하지 않을 수 있다. 또는, 누설 경로로 인해 멤리스터가 부정확한 값으로 프로그래밍 될 수 있다. 그러한 경우의 누설 경로 전류를 경감시키고, 특히 더 큰 어레이가 요구될 때, 비선형 선택기 또는 트랜지스터(예를 들어, 보통적으로 ON 공핍 모드 트랜지스터)와 같은 액세스 디바이스는 어레이 내의 누설 경로 전류를 최소화하기 위해 멤리스티브 소자(308) 내에 포함되거나 멤리스티브 소자(308)와 함께 이용될 수 있다. 더 구체적으로, 멤리스티브 소자(308)는, 예를 들어 멤리스터(a memristor), 멤리스터 및 선택기(a memristor and selector) 또는 멤리스터 및 트랜지스터(a memristor and transistor)를 포함하는 멤리스티브 디바이스를 포함하도록 광범위하게 해석되어야 한다.
도 4a 및 도 4b는 본 명세서에 설명된 원리의 일 예에 따른 크로스바 어레이(도 3, 302)의 상부 전극 층 및 하부 전극 층(도 3, 304, 306) 각각의 상부 전압 분포(400) 및 하부 전압 분호(420)를 도시한다. 특히, 도 3에 도시된 것과 유사한 256 × 256 행 및 열 크로스바 어레이(도 3, 302)는 프로그래밍 동작 동안 상부 층의 행 전극(도 3, 304)과 하부 층의 열 전극(도 3, 306) 상의 전압 분포를 예시하는데 사용된다. 도 4a 및 4b에서, 입력 조건들은, 0.5V가 입력 벡터(도 3, 310)에서 각 행 전극(도 3, 304)에 인가되는 것과, 감지 회로(도 3, 316)가 스위치 아웃(switch out)되게 출력 벡터(도 3, 314)에서 접지되는 것이다. 도 4a 및 4b에 도시된 바와 같이, 상부 및 하부 표면에 전압 분포가 발생하여 신호 감쇠를 초래한다. 예를 들어, 상부 층의 행 전극(도 3, 304) 상의 전압 분포는 전압 입력 벡터(도 3, 310) 위치에서 0.50 볼트(402)로 시작되고, i = 256, j = 256 위치 부근에서 약 0.25 볼트로 감소된다. 감쇠는 0.50V, 0.45V, 0.40V, 0.35V 및 0.30V를 나타내는 등고선에 의해 증명되는 바와 같이 상부 표면에 걸쳐 점진적으로 발생한다. 유사하게, 바닥층의 열 전극(도 3, 306)에 대해, N 번째 행에 인접한 인가된 접지 또는 0.00V(422), 0.05V, 0.10V, 0.15V, 0.20V 및 0.25V를 나타내는 등고선에 의해 증명되는 바와 같이 신호가 열 전극(도 3, 306)의 표면에 걸쳐 점진적으로 감소된다. 분포로부터 명백한 바와 같이, 크로스바 어레이(도 3, 302)의 큰 영역이 어레이(도 3, 302)의 상부 및 하부 표면에서 풀 0.50V 바이어스(full 0.50V bias)를 겪지 않으며, 이는 크로스바 교차 지점(도 2, 210)에서의 멤리스티브 소자(도 3, 308)가 소자에 걸쳐 의도된 전압 강하를 겪지 않을 수 있음을 의미한다. 다음 예는 위에서 설명한 신호 감쇠를 다룬다.
도 5는 본 명세서에 개시된 원리의 일 예에 따른 전압 입력들의 더블 벡터를 갖는 더블 바이어스 멤리스티브 내적 엔진(500)을 도시한다. 내적 엔진(500)은 N 개의 행 전극(504) 및 M 개의 열 전극(506)을 포함하는 크로스바 어레이(502)를 포함한다. 크로스바 어레이(502) 전체에 걸친 크로스바 교차 지점(도 2, 210)은 멤리스티브 소자(508)를 포함한다. 내적 엔진(500)은 행 전극(504)에 전압을 인가하기 위한 제 1 벡터 입력 레지스터 또는 제 1 벡터 입력(a first vector input register or first vector input)(510)을 포함한다. 행 전극(504)에 전압을 인가하기 위한 제 2 벡터 입력 레지스터 또는 제 2 벡터 입력(a second vector input register or second vector input)(512) 또한 내적 엔진(500)에 통합된다. 내적 엔진(500)은 열 전극(506)에서의 전류 흐름으로부터 생성된 출력 전압을 수신하기 위한 벡터 출력 레지스터 또는 벡터 출력(a vector output register or vector output)(514)을 더 포함한다. 내적 엔진(500)은 또한 열 전극(506)의 전기 전류를 전압으로 변환하기 위한 감지 회로(516)를 포함한다. 여기에 설명된 원리의 예에서, 감지 회로(516)는 연산 증폭기(518) 및 저항(520)을 포함하는데, 이들은 판독 동작을 위한 가상 접지를 나타내도록 배치될 수 있다. 상술된 예와 유사하게, 내적 엔진(500)은 예를 들어 드라이버, 디코더, DAC, ADC 및 제어 회로를 포함하는 저장 디바이스로서 사용되는 크로스바 어레이(502)와 관련된 주변 회로도 포함할 수 있는데, 이것들 모두는 위 예의 크로스바 어레이(도 3, 302)와 동일한 집적 구조 또는 반도체 다이에서 반도체 처리 기술을 사용하여 제조될 수 있다.
본 명세서에서 설명된 원리에 따른 일 예에서, 전압 입력들의 제 1 입력 벡터(510)는 j = 1 열 전극에 인접한 행 전극들(504)에 인가되거나 연결되며, 반면에 전압 입력들의 제 2 입력 벡터(512)는 j = M 열 전극에 인접한 행 전극들(504)에 인가되거나 연결된다. 추가적인 예는, 예를 들어, j = 1/4M 및 j = 3/4M 열들과 같이, 크로스바 어레이(502) 상의 상이한 위치들에 전압 입력의 제 1 및 제 2 입력 벡터들(510, 512)을 위치시킨다. 다른 예들에서, 전압 입력들의 3 개 이상의 입력 벡터들(510, 512)이 이용될 수 있다. 일반적으로, 전압 입력은 각 행마다 다르다. 그러나, 도 5에서, 단일-바이어싱 방식과 비교하여 더블-바이어싱 방식의 이점을 보다 명확하게 나타내기 위해 각 행(504)에 대해 동일한 전압들이 사용된다. 또한, 제 1 입력 벡터(510)가 전압 입력{Vi I} (i = 1, N)을 포함하는 경우, 통상적으로, 제 2 입력 벡터(512)는 동일한 전압 입력을 포함할 것이다. 동일한 방법론이 어떤 열 전극들(506)이 입력들에 인접(예컨대, 도 5에서는 j = 1 열 전극 및 j = M 열 전극)하는지와 무관하게 그리고 예를 들어 세 개 이상의 입력 벡터들에 일반적으로 적용될 것이다.
전술한 것과 유사한 동작에서, 행렬 값[aij]은 크로스바 어레이(502)로 매핑되는데, 이것은 컨덕턴스 값 Gij을 크로스바 어레이(502)의 크로스바 교차 지점에 프로그래밍(예컨대, 쓰기(writing))함으로써 진행된다. 일 예에서, 각각의 컨덕턴스 값 Gij은 각각의 크로스바 교차 지점(도 2, 210)에 걸쳐 전압 강하를 순차적으로 가함으로써 설정된다. 예를 들면, 컨덕턴스 값 G2,3은 크로스바 어레이(502)의 2번째 행에 VRow2와 같은 전압을 인가함으로써 그리고 크로스바 어레이(502)의 3번째 열에 VCol3와 같은 전압을 인가함으로써 설정될 수 있다. 도 5를 참조하면, 일 예에서, 전압 입력 VRow2는 2번째 행의 두 개의 위치들에 인가될 것이며, 여기서 제 1 위치(530)는 j = 1 열 전극과 인접한 2번째 행 전극에서 발생하고, 제 2 위치(532)는 j = M 열 전극과 인접한 2번째 행 전극에서 발생한다. 전압 입력 VCol3는 i = 1 또는 i = N 위치와 인접한 3번째 열 전극에 인가될 것이다. 열 전극(506)에 전압을 인가할 때, 해당 전극용 감지 회로(516)는 스위치 아웃(switch out)될 것이고 전압 드라이버는 스위치인(switch in)될 것이다. 전위차 VRow2-VCol3는 교차 지점에 위치한 멤리스티브 소자(508)의 특성에 기초하여 일반적으로 결과 컨덕턴스 값 G2,3을 결정할 것이다. 이러한 접근법에 따르면, 선택되지 않은 열들(506) 및 행들(504)은 몇몇 구조들, 예컨대, 모든 선택되지 않은 열들(506) 및 행들(504)을 플로팅하거나 모든 선택되지 않은 열들(506) 및 행들(504)을 접지시키는 것을 포함하는 구조들 중 하나에 따라 어드레싱될 것이다. 다른 구조는 열들(506)을 접지시키는 것 또는 열들(506)의 일부를 접지시키는 것을 포함한다. 선택되지 않은 열들(506) 및 행들(504) 모두를 접지시키는 것은 선택되지 않은 열들(506) 및 행들(504)을 분리시키는 데 도움이 되어 선택된 출력 열로의 누설 경로 전류를 최소화한다는 이점이 있다. 이어지는 프로그래밍, 내적 엔진(500)의 동작은, 어레이(502)의 j = 1 열 전극에 인접한 대응하는 행 전극(504)에 제 1 벡터의 입력 전압(510)을 인가하고 어레이(502)의 j = M 열 전극(506)에 인접한 대응하는 행 전극(504)에 제 2 벡터의 입력 전압(512)을 인가함으로써 그리고 출력 전압 벡터(514)를 판독함으로써 진행된다.
도 6a 및 도 6b는 본 명세서에서 개시된 원리의 일 예에 따른 크로스바 어레이(도 5, 502)의 상부 전극 및 하부 전극 층(도 5, 504, 506) 각각의 상부 전압 분호(600) 및 하부 전압 분포(620)를 도시한다. 특히, 도 5 (그리고 아래 설명되는 도 7)에 도시된 것과 유사한 256 × 256 행 및 열 크로스바 어레이(도 5, 502)는 프로그래밍 동작 동안 상부 층의 행 전극(도 5, 504)과 하부 층의 열 전극(도 3, 306) 상의 전압 분포를 예시하는데 사용된다. 입력 조건들은, 0.5V가 입력 벡터(도 5, 510, 512)에서 각 행에 인가되는 것과, 감지 회로(도 5, 516)가 스위치 아웃(switch out)되게 출력 벡터(도 5, 514)에서 접지되는 것이다. 최상부 또는 첫 번째 행 전극(an uppermost or 1st row electrode)(도 5, 504)에 인접한 열 전극들(도 5, 506) 또한 접지로 바이어스된다. 도 6a 및 6b에 도시된 바와 같이, 상부 및 하부 표면에 전압 분포가 발생하여 신호 감쇠를 초래한다. 예를 들어, 상부 층의 행 전극(도 5, 504) 상의 전압 분포는 전압 입력 벡터(도 5, 510, 512) 위치에서 0.50 볼트(602, 612)에서 시작되고, i = 1, j = 128 및 i = 256, j = 128 행 및 열 전극(도 5, 504, 506) 위치 부근에서 약 0.40 볼트로 감소된다. 감쇠는 0.50V, 0.48V, 0.46V, 0.44V, 0.42V 및 0.40V를 나타내는 등고선에 의해 증명되는 바와 같이 상부 표면에 걸쳐 점진적으로 발생한다. 유사하게, 바닥층의 열 전극(도 5, 506)에 대해, 첫 번째 행 및 N 번째 행에 인접한 인가된 접지 또는 0.00V(622, 624), 0.02V, 0.04V, 0.06V, 0.08V 및 0.10V를 나타내는 등고선에 의해 증명되는 바와 같이 신호가 열 전극(도 5, 506)의 표면에 걸쳐 점진적으로 감소된다.
분포로부터 명백한 바와 같이, 더블 바이어스 전압 입력 구조는 적어도 2 가지 측면에서 전술한 단일 바이어스 입력 구조에 비해 향상된 정확도를 제공한다. 첫 번째로, 신호 감쇠는 일반적으로 대칭 형상으로, 가장 큰 감쇠가 단일 바이어스 구조의 모서리 영역 근처가 아니라 상부 표면 및 하부 표면 모두에서 어레이(도 5, 502)의 중간 근처에서 발생한다. 두 번째로, 더블 바이어스 구조는 상부 표면 및 하부 표면에서의 최대 신호 감쇠를 줄인다. 예를 들어, 단일 바이어스 구조는 약 0.25 볼트의 최대 신호 감쇠를 나타내지만, 더블 바이어스 구조는 상부 표면 및 하부 표면 각각에서 약 0.1 볼트의 최대 신호 감쇠를 나타낸다.
도 7a 및 7b는 전술한 두 가지 예의 크로스바 어레이 양단의 전위차를 도시한다. 구체적으로, 도 7a는, 도 4a 및 도 4b에 각각 도시된 상부 전압 분포(도 4, 400) 및 하부 전압 분포(도 4, 420) 사이의 전위차(700)의 등고선을 제공하고, 도 7b는, 도 6a 및 도 6b에 각각 도시된 상부 전압 분포(도 6, 600) 및 하부 전압 분포(도 6, 620) 사이의 전위차(720)의 등고선을 제공한다. 전위차(프로그래밍 동안 멤리스티브 소자에 걸리는 전압을 나타낼 수 있음) 감쇠의 분포에서 볼 수 있듯이, 듀얼 바이어싱 구조는 약 0.20 볼트(0.5 볼트 - 0.3 볼트), 단일 바이어싱 구조는 약 0.3 볼트(0.5 볼트 - 0.2 볼트)의 최대 감쇠를 초래한다. 또한 듀얼 바이어싱 구조의 최대 감쇠는 크로스바 어레이의 중간에서 발생하지만(도 5, 502), 단일 바이어싱 구조의 최대 감쇠는 더블 바이어싱 구조와 비교했을 때 크로스바의 상대적으로 큰 부분(어레이의 상부 대각선의 대부분)에 걸쳐 발생한다. 따라서 더블 바이어싱 구조는 평균 오류를 개선하여 데이터 저장 중 또는 내적 계산을 수행하는 동안 밀도가 더 높은 크로스바 어레이를 정확하게 작동시킬 수 있는 능력을 향상시킨다. 또한, 오류가 어레이 표면에서 공간적으로 대칭이기 때문에 오류를 모델링하고 DPE(도 5, 500)의 출력에서 오류를 보상할 수 있다.
도 8은 본 명세서에 개시된 원리의 일 예에 따라 더블 벡터 전압 입력(810, 812)과 더블 벡터 출력(814, 822)을 갖는 더블 바이어스 멤리스티브 내적 엔진(800)을 도시한다. 내적 엔진(800)은 N 개의 행 전극(804) 및 M 개의 열 전극(806)을 포함하는 크로스바 어레이(802)를 포함한다. 크로스바 어레이(802) 전체의 크로스바 교차 지점은 멤리스티브 소자(808)를 포함한다. 내적 엔진(800)은 행 전극(804)에 전압을 인가하기 위한 제 1 벡터 입력 레지스터 또는 제 1 벡터 입력(a first vector input register or first vector input)(810)을 포함한다. 행 전극(804)에 전압을 인가하기 위한 제 2 벡터 입력 레지스터 또는 제 2 벡터 입력(a second vector input register or second vector input)(812) 또한 내적 엔진(800)에 통합된다. 내적 엔진(800)은 제 1 벡터 출력 레지스터 또는 벡터 출력(a first vector output register or vector output)(814) 및 제 2 벡터 출력 레지스터 또는 벡터 출력(a second vector output register or vector output)(822)을 포함하여 열 전극(806)에서의 전류 흐름으로부터 생성된 출력 전압을 수신한다. 내적 엔진(800)은 또한 열 전극(806)의 전기 전류를 전압으로 변환하기 위한 감지 회로(816)를 포함한다. 여기에 설명된 원리의 예에서, 감지 회로(816)는 판독 동작을 위한 가상 접지를 나타내도록 배열될 수 있는 연산 증폭기(818) 및 저항(820)을 포함한다. 상술된 예와 유사하게, 내적 엔진(800)은 예를 들어 드라이버, 디코더, DAC, ADC 및 제어 회로를 포함하는 저장 디바이스로서 사용되는 크로스바 어레이(802)와 관련된 주변 회로를 포함할 수 있는데, 이것들 모두는 위 예의 크로스바 어레이(도 3, 302)와 동일한 집적 구조 또는 반도체 다이에서 반도체 처리 기술을 사용하여 제조될 수 있다.
내적 엔진(800)의 작동은 전술한 것과 유사하다. 행렬 값 [aij]은 전술한 바와 동일한 방식으로 크로스바 어레이(802) 상에 매핑된다 - 예를 들어 각각의 컨덕턴스 값 Gij은 각각의 크로스바 교차 지점에 전압 강하를 순차적으로 인가함으로써 설정된다. 프로그래밍 후 내적 엔진(800)의 동작은, 어레이(802)의 j = 1 열 전극(806)에 인접한 대응하는 행 전극(804)에 제 1 벡터 입력 전압(810)을 인가하고 어레이(802)의 j = M 열 전극(806)에 인접한 대응하는 행 전극(804)에 제 2 벡터 입력 전압(812)을 인가함으로써 진행된다. 출력 전압은 제 1 벡터 출력 레지스터 또는 벡터 출력(814) 및 제 2 벡터 출력 레지스터 또는 벡터 출력(822)에서 판독된다. 행렬 곱셈의 최종 결과는 제 1 출력 벡터(814) 및 제 2 출력 벡터(822)에서 판독된 전압을 가산함으로써 획득된다.
이제 도 9를 참조하면, 본 명세서에 설명된 원리의 일 예에 따른 크로스바 어레이(도 5, 502)를 갖는 듀얼 바이어스 멤리스티브 내적 엔진(도 5, 500)을 사용하는 벡터 처리 방법(900)이 도시된다. 특정 예에 따르면, 방법(900)은 멤리스티브 저장 디바이스의 크로스바 어레이(도 5, 502)를 제공하는 단계(블록 902)를 포함할 수 있다. 예를 들어, 크로스바 어레이(도 5, 502)는 N × M 그리드의 메모리 소자들을 형성하기 위해 N 개의 행 전극들(도 5, 504) 및 M 개의 열 전극들(도 5, 506)을 포함할 수 있다. 각 행 전극(도 5, 504)과 각 열 전극(도 5, 506)의 교차로는 메모리 소자를 정의하며, 이 메모리 소자는 멤리스티브 저장 디바이스(도 5, 508)를 포함한다. 방법(900)은 또한 다수의 벡터 입력 레지스터(도 5, 510, 512) 및 벡터 출력 레지스터(도 5, 514, 도 8, 822)를 제공하는 단계(블록 904)를 포함한다. 예를 들어, 제 1 벡터 입력 레지스터(도 5, 510)는 N 개의 행 전극들(도 5, 504) 각각에 제 1 전압 입력을 공급한다. 또한, 일부 예들에서, 제 2 벡터 입력 레지스터(도 5, 512)는 제 2 전압 입력을 N 개의 행 전극들(도 5, 504) 각각에 공급한다. 또한, 제 1 벡터 출력 레지스터(도 5, 514)는 M 개의 열 전극들(도 5, 506) 각각으로부터 전압 출력을 수신한다. 방법(900)은 크로스바 어레이(도 5, 502) 내의 N × M 메모리 위치들에 멤리스턴스 값들을 설정하는 단계(블록 906)를 포함하며, 멤리스턴스 값들은 N × M 행렬의 행 및 열 값들에 대응한다. 예를 들어, 프로그래밍 전압은 어레이(도 5, 502) 내의 N × M 메모리 위치들의 크로스바 교차 지점들에 대응하는 행 및 열 전극들(도 5, 504, 506)에 순차적으로 인가될 수 있다. 방법(900)은 N × 1 행렬의 값들에 대응하는 입력 전압들을 설정하는 단계(블록 908)를 더 포함할 수 있다. 입력 전압들은 N × M 행렬 값들에 곱해질 N × 1 행렬 값들을 나타낸다. 방법(900)은 N 개의 행 전극들(도 5, 504) 각각 상의 2 개의 위치들에 전압 입력을 인가하는 단계(블록 910)를 더 포함할 수 있다. 예를 들어, N × 1 행렬의 첫 번째 값에 해당하는 전압 입력은 크로스바 어레이(도 5, 502)의 첫 번째 행의 왼쪽 끝 및 오른쪽 끝에 인가될 수 있다. 마지막으로, 방법(900)은 M 개의 전압 출력들(도 5, 514)에서 출력 전압들을 결정하는 단계(블록 912)를 포함할 수 있다. 각 출력 전압은 N × M 행렬과 N × 1 벡터의 행 및 열 곱셈에 대응한다. 일부 예에서, 출력 전압들을 결정(블록 912)하는 것은 저항(도 5, 520)을 포함하는 저항성 네트워크에 의한 곱셈을 포함할 수 있다. 일 예에서, 전압 출력들(도 5, 514)은 열 전극(도 5, 506)을 통해 흐르는 전류를 저항을 통해 통과시키는 감지 회로(도 5, 516)를 사용하여 결정될 수 있으며, 따라서 전압은 옴의 법칙을 사용하여 결정될 수 있다.
본 시스템 및 방법의 양상은 본 명세서에 설명된 원리의 예에 따른 방법, 장치 (시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 여기에 설명된다. 흐름도 및 블록도의 각 블록, 및 흐름도 및 블록도의 블록들의 조합은 컴퓨터 이용 가능 프로그램 코드에 의해 구현될 수 있다. 컴퓨터 이용 가능 프로그램 코드는 범용 컴퓨터, 특수 목적 컴퓨터의 프로세서 또는 다른 프로그램 가능 데이터 처리 장치에 제공되어 머신을 생성할 수 있으며, 컴퓨터 이용 가능 프로그램 코드는 예를 들어 컴퓨팅 시스템(도 1, 100)의 프로세서(도 1, 101) 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행될 때 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능 또는 동작을 구현한다. 일 예시에서, 컴퓨터 이용 가능 프로그램 코드는 컴퓨터 판독 가능 저장 매체 내에 구현될 수 있으며; 컴퓨터 판독 가능 저장 매체는 컴퓨터 프로그램 제품의 일부이다. 일 예에서, 컴퓨터 판독 가능 저장 매체는 비일시적 컴퓨터 판독 가능 매체이다.
앞선 설명은 설명된 원리의 예를 도시하고 설명하기 위해 제공되었다. 이 설명은 모든 것을 망라하거나 이러한 원칙들을 개시된 정확한 형태로 제한하려는 의도는 아니다. 위 가르침에 비추어 많은 수정 및 변형이 가능하다.
Claims (15)
- 벡터 처리를 위한 더블 바이어스 멤리스티브 내적 시스템으로서,
N 개의 행 전극, M 개의 열 전극 및 N X M 메모리 소자를 포함하는 크로스바 어레이 - 상기 메모리 소자는 상기 크로스바 어레이의 상기 N 개의 행 전극과 상기 M 개의 열 전극 사이의 교차로에 위치하고, 각 메모리 소자는 멤리스티브 저장 디바이스를 포함함 - 와,
상기 N 개의 행 전극의 각각에 제 1 전압 입력을 공급하는 제 1 벡터 입력 레지스터와,
상기 N 개의 행 전극의 각각에 제 2 전압 입력을 공급하는 제 2 벡터 입력 레지스터와,
상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 벡터 출력 레지스터를 포함하는
더블 바이어스 멤리스티브 내적 시스템.
- 제 1 항에 있어서,
상기 제 1 벡터 입력 레지스터는 jth열(j=1, M) 에서 상기 N 개의 행 전극의 각각에 연결되고, 상기 제 2 벡터 입력 레지스터는 kth 열(k≠j)에서 상기 N 개의 행 전극의 각각에 연결되는
더블 바이어스 멤리스티브 내적 시스템.
- 제 2 항에 있어서,
상기 제 1 벡터 입력 레지스터는 j=1 열에서 상기 N 개의 행 전극의 각각에 연결되고, 상기 제 2 벡터 입력 레지스터는 j=M 열에서 상기 N 개의 행 전극의 각각에 연결되는
더블 바이어스 멤리스티브 내적 시스템.
- 제 2 항에 있어서,
상기 벡터 출력 레지스터는 행 i=N에서 상기 M 개의 열 전극의 각각에 연결되는
더블 바이어스 멤리스티브 내적 시스템.
- 제 4 항에 있어서,
상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 제 2 벡터 출력 레지스터를 더 포함하되,
상기 제 2 벡터 출력 레지스터는 행 i=1에서 상기 M 개의 열 전극의 각각에 연결되는
더블 바이어스 멤리스티브 내적 시스템.
- 벡터 처리를 위한 더블 바이어스 내적 엔진으로서,
N X M 행렬 내에 포함된 값에 대응하는 N X M 개의 메모리 소자를 포함하는 크로스바 어레이 - 상기 메모리 소자는 N 개의 행 전극과 M 개의 열 전극 사이의 교차로에 위치하고, 각 메모리 소자는 멤리스티브 저장 디바이스를 포함함 - 와,
N 개의 전압 입력을 포함하는 제 1 벡터 입력 레지스터 - 각 전압 입력은 N 개의 값을 갖는 벡터 내에 포함된 값에 대응하고, 상기 크로스바 어레이에 연결되어 상기 N 개의 행 전극의 각각에 제 1 전압 입력을 공급함 - 와,
N 개의 전압 입력을 포함하는 제 2 벡터 입력 레지스터 - 각 전압 입력은 N 개의 값을 갖는 벡터 내에 포함된 값에 대응하고, 상기 크로스바 어레이에 연결되어 상기 N 개의 행 전극의 각각에 제 2 전압 입력을 공급함 - 와,
상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 제 1 벡터 출력 레지스터를 포함하는
더블 바이어스 내적 엔진.
- 제 6 항에 있어서,
상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 제 2 벡터 출력 레지스터를 더 포함하는
더블 바이어스 내적 엔진.
- 제 6 항에 있어서,
상기 제 1 벡터 입력 레지스터는 j=1 열에서 상기 N 개의 행 전극의 각각에 연결되고, 상기 제 2 벡터 입력 레지스터는 j=M 열에서 상기 N 개의 행 전극의 각각에 연결되는
더블 바이어스 내적 엔진.
- 제 7 항에 있어서,
상기 제 1 벡터 출력 레지스터는 행 i=N에서 상기 M 개의 열 전극의 각각에 연결되고, 상기 제 2 벡터 출력 레지스터는 행 i=1에서 상기 M 개의 열 전극의 각각에 연결되는
더블 바이어스 내적 엔진.
- 제 7 항에 있어서,
상기 M 개의 열 전극의 각각과 상기 제 1 및 제 2 벡터 출력 레지스터들의 출력 레지스터들 사이에 위치한 아날로그-디지털 변환기와, 상기 N 개의 행 전극의 각각과 상기 제 1 및 제 2 벡터 입력 레지스터들의 입력 레지스터들 사이에 위치한 디지털-아날로그 변환기를 더 포함하는
더블 바이어스 내적 엔진.
- 크로스바 어레이를 사용하는 벡터 처리 방법으로서,
N X M 개의 메모리 소자를 포함하는 크로스바 어레이 - 상기 메모리 소자는 N 개의 행 전극과 M 개의 열 전극 사이의 교차로에 위치하고, 각 메모리 소자는 멤리스티브 저장 디바이스를 포함함 - 와, 상기 N 개의 행 전극의 각각에 제 1 전압 입력을 공급하는 제 1 벡터 입력 레지스터와, 상기 N 개의 행 전극의 각각에 제 2 전압 입력을 공급하는 제 2 벡터 입력 레지스터와, 상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 제 1 벡터 출력 레지스터를 제공하는 단계와,
상기 크로스바 어레이 내의 N X M 개의 메모리 위치에서 멤리스턴스 값을 설정하는 단계 - 상기 멤리스턴스 값은 N X M 행렬의 행 값 및 열 값에 대응함 - 와,
N X 1 행렬의 값에 대응하는 입력 전압을 설정하는 단계와,
상기 N 개의 행 전극의 각각 상의 2 개의 위치에 전압 입력을 인가하는 단계와,
M 개의 전압 출력에서 출력 전압을 결정하는 단계 - 각 출력 전압은 N X M 행렬 및 N X 1 벡터의 행 및 열 곱셈에 대응함 - 를 포함하는
벡터 처리 방법.
- 제 11 항에 있어서,
상기 N 개의 행 전극의 각각에 대해, 입력 전압이 j = 1 열 및 j = M 열에 인가되는
벡터 처리 방법.
- 제 11 항에 있어서,
상기 크로스바 어레이는 상기 M 개의 열 전극의 각각으로부터 전압 출력을 수신하는 제 2 벡터 출력 레지스터를 더 포함하되,
상기 제 1 벡터 출력 레지스터는 행 i=N에서 상기 M 개의 열 전극의 각각에 연결되고,
상기 제 2 벡터 출력 레지스터는 행 i=1에서 상기 M 개의 열 전극의 각각에 연결되는
벡터 처리 방법.
- 제 13 항에 있어서,
상기 크로스바 어레이의 M 개의 열 전극의 각각에서의 전압 출력은 상기 M 개의 열 전극의 각각에 대해 i=1 행 및 i=N 행에서 수신된 전류 출력을 저항 디바이스를 통해 통과시킴으로써 결정되는
벡터 처리 방법.
- 제 11 항에 있어서,
상기 N X M 개의 메모리 위치에서 멤리스턴스 값을 설정하는 단계, N 개의 전압 입력에서 상기 입력 전압을 설정하는 단계, 상기 전압 입력을 인가하는 단계 및 상기 M 개의 전압 출력에서 출력 전압을 결정하는 단계는 수렴 기준(a convergence criteria)이 만족할 때까지 반복하여 수행되는
벡터 처리 방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/063213 WO2016068953A1 (en) | 2014-10-30 | 2014-10-30 | Double bias memristive dot product engine for vector processing |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170078633A true KR20170078633A (ko) | 2017-07-07 |
Family
ID=55858056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177011137A KR20170078633A (ko) | 2014-10-30 | 2014-10-30 | 벡터 처리를 위한 더블 바이어스 멤리스티브 내적 엔진 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10109348B2 (ko) |
JP (1) | JP6281024B2 (ko) |
KR (1) | KR20170078633A (ko) |
WO (1) | WO2016068953A1 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10109348B2 (en) * | 2014-10-30 | 2018-10-23 | Hewlett Packard Enterprise Development Lp | Double bias memristive dot product engine for vector processing |
US10901939B2 (en) * | 2015-10-30 | 2021-01-26 | International Business Machines Corporation | Computer architecture with resistive processing units |
US10482940B2 (en) * | 2015-12-17 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Computational accuracy in a crossbar array |
US10706922B2 (en) * | 2016-01-26 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Memristive arrays with offset elements |
KR102578124B1 (ko) * | 2016-12-16 | 2023-09-14 | 에스케이하이닉스 주식회사 | 신경망 장치의 정규화 장치 및 방법 |
JP6724863B2 (ja) | 2017-05-29 | 2020-07-15 | 株式会社デンソー | 畳み込みニューラルネットワーク |
JP6724869B2 (ja) | 2017-06-19 | 2020-07-15 | 株式会社デンソー | 多層ニューラルネットワークのニューロンの出力レベル調整方法 |
JP6724870B2 (ja) | 2017-06-19 | 2020-07-15 | 株式会社デンソー | 人工ニューラルネットワーク回路の訓練方法、訓練プログラム、及び訓練装置 |
JP6805984B2 (ja) | 2017-07-06 | 2020-12-23 | 株式会社デンソー | 畳み込みニューラルネットワーク |
US10210138B2 (en) | 2017-07-19 | 2019-02-19 | International Business Machines Corporation | Higher accuracy of non-volatile memory-based vector multiplication |
IT201700108281A1 (it) * | 2017-09-27 | 2019-03-27 | Milano Politecnico | "circuito di risoluzione di problemi matematici comprendente elementi resistivi." |
US10867239B2 (en) * | 2017-12-29 | 2020-12-15 | Spero Devices, Inc. | Digital architecture supporting analog co-processor |
US10740125B2 (en) * | 2018-01-30 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine virtualization |
US10509167B2 (en) | 2018-04-23 | 2019-12-17 | Hewlett Packard Enterprise Development Lp | Optical phase difference calculation using analog processing |
US11194886B2 (en) * | 2019-05-09 | 2021-12-07 | Applied Materials, Inc. | Bit-ordered binary-weighted multiplier-accumulator |
US11094376B2 (en) | 2019-06-06 | 2021-08-17 | Stmicroelectronics International N.V. | In-memory compute array with integrated bias elements |
JP6818116B1 (ja) * | 2019-11-22 | 2021-01-20 | ウィンボンド エレクトロニクス コーポレーション | クロスバーアレイを用いた電子装置およびデータ処理方法 |
US20220284956A1 (en) * | 2020-07-06 | 2022-09-08 | Tetramem, Inc. | Reducing current in crossbar array circuits utilizing large input resistance |
DE102021204651A1 (de) * | 2021-05-07 | 2022-11-10 | Forschungszentrum Jülich GmbH | Vorrichtung und Verfahren basierend auf memristiven Domino-Verarbeitungseinheit-basierten Computerparadigmen |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970375B2 (en) * | 2002-08-02 | 2005-11-29 | Unity Semiconductor Corporation | Providing a reference voltage to a cross point memory array |
US7233024B2 (en) | 2003-03-31 | 2007-06-19 | Sandisk 3D Llc | Three-dimensional memory device incorporating segmented bit line memory array |
JP2005251381A (ja) * | 2004-03-03 | 2005-09-15 | Sharp Corp | 電気的に書込み可能なクロスポイント型不揮発性可変抵抗記憶装置及びクロスポイント型可変抵抗メモリアレイの読み出し方法 |
US8559209B2 (en) | 2011-06-10 | 2013-10-15 | Unity Semiconductor Corporation | Array voltage regulating technique to enable data operations on large cross-point memory arrays with resistive memory elements |
US20070233761A1 (en) * | 2006-04-03 | 2007-10-04 | Mouttet Blaise L | Crossbar arithmetic processor |
JP5160304B2 (ja) * | 2008-05-22 | 2013-03-13 | シャープ株式会社 | 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法 |
US8159858B2 (en) | 2008-12-19 | 2012-04-17 | Unity Semiconductor Corporation | Signal margin improvement for read operations in a cross-point memory array |
US8611134B2 (en) | 2010-03-25 | 2013-12-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for row-wire voltage-loss compensation in crossbar arrays |
US8467253B2 (en) * | 2010-05-24 | 2013-06-18 | Hewlett-Packard Development Company, L.P. | Reading memory elements within a crossbar array |
US8914431B2 (en) * | 2012-01-03 | 2014-12-16 | International Business Machines Corporation | Range check based lookup tables |
US20150053909A1 (en) * | 2012-04-25 | 2015-02-26 | Hewlett-Packard Development Company, Lp. | Nonlinear memristors |
US9236102B2 (en) | 2012-10-12 | 2016-01-12 | Micron Technology, Inc. | Apparatuses, circuits, and methods for biasing signal lines |
US9152827B2 (en) * | 2012-12-19 | 2015-10-06 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
JP5714681B2 (ja) * | 2013-10-25 | 2015-05-07 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US9489618B2 (en) * | 2014-05-27 | 2016-11-08 | Purdue Research Foudation | Electronic comparison systems |
US10109348B2 (en) * | 2014-10-30 | 2018-10-23 | Hewlett Packard Enterprise Development Lp | Double bias memristive dot product engine for vector processing |
US9847125B2 (en) * | 2015-08-05 | 2017-12-19 | University Of Rochester | Resistive memory accelerator |
-
2014
- 2014-10-30 US US15/522,364 patent/US10109348B2/en active Active
- 2014-10-30 JP JP2017519498A patent/JP6281024B2/ja not_active Expired - Fee Related
- 2014-10-30 WO PCT/US2014/063213 patent/WO2016068953A1/en active Application Filing
- 2014-10-30 KR KR1020177011137A patent/KR20170078633A/ko not_active Application Discontinuation
-
2018
- 2018-10-01 US US16/148,468 patent/US10643697B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018501536A (ja) | 2018-01-18 |
US10643697B2 (en) | 2020-05-05 |
WO2016068953A1 (en) | 2016-05-06 |
US20190035463A1 (en) | 2019-01-31 |
US10109348B2 (en) | 2018-10-23 |
US20170316828A1 (en) | 2017-11-02 |
JP6281024B2 (ja) | 2018-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10643697B2 (en) | Double bias memristive dot product engine for vector processing | |
US10541026B2 (en) | Memristive dot product engine for vector processing | |
US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
JP6333477B2 (ja) | ドット積を求めるためのメムリスティブクロスバーアレイ | |
US10698975B2 (en) | In situ transposition | |
US9785615B1 (en) | Memristive computation of a vector cross product | |
CN107533858B (zh) | 交叉杆阵列、图像处理器及对存储单元进行编程的方法 | |
US20210117373A1 (en) | Computer architecture with resistive processing units | |
US9947405B2 (en) | Memristive dot product engine with a nulling amplifier | |
KR20170096152A (ko) | 비 휘발성 메모리 크로스바 어레이 | |
CN107077887B (zh) | 生成分组忆阻器的代表性逻辑指示符 | |
US10453528B1 (en) | Controlling aggregate signal amplitude from device arrays by segmentation and time-gating | |
KR102409859B1 (ko) | 신경망들을 위한 가중된 입력들을 생성하도록 구성된 메모리 셀들 | |
US11226763B2 (en) | Device for high dimensional computing comprising an associative memory module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |