KR20160082234A - 저장 장치, 방법 및 저장 매체 - Google Patents
저장 장치, 방법 및 저장 매체 Download PDFInfo
- Publication number
- KR20160082234A KR20160082234A KR1020150189870A KR20150189870A KR20160082234A KR 20160082234 A KR20160082234 A KR 20160082234A KR 1020150189870 A KR1020150189870 A KR 1020150189870A KR 20150189870 A KR20150189870 A KR 20150189870A KR 20160082234 A KR20160082234 A KR 20160082234A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- cells
- bit
- state
- bit line
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
- G11C15/043—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using capacitive charge storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/411—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using bipolar transistors only
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
- G11C7/067—Single-ended amplifiers
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
Abstract
저장 장치가 데이터 값을 저장하기 위한 복수의 저장 셀을 갖고 있다. 적어도 2개의 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하기 위해 제어 회로가 제공된다. 상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는, 상기 적어도 하나의 공통 신호 라인의 신호를 감지하기 위해 감지 회로가 제공된다. 이로 인해 AND, OR, XOR등과 같은 논리 연산이 각각의 데이터 값을 독립적으로 판독하고 각각의 데이터 값을 별개의 처리 회로에 전송하여 논리 연산의 결과를 찾을 필요가 없도록 저장 장치에서 실행될 수 있다. 이것은 저장 장치를 갖는 데이터 처리 장치의 성능을 향상시키는데 도움이 된다.
Description
본 발명은 저장 장치에 관한 것이다.
데이터 처리 장치는 데이터를 저장하기 위한 저장 장치를 가질 수 있다. 예를 들어, 이러한 저장 장치는 메모리 또는 캐시를 포함할 수 있다. 데이터 값은 저장 장치로부터 판독될 수 있고 프로세서로 전송되어 처리되고 처리 연산의 결과는 메모리에 다시 기록될 수 있다.
일부 종류의 저장 장치는 판독되거나 기록될 저장 셀을 선택하기 위해 어드레스 디코더에 의해 디코딩된 주소를 사용하여 판독되거나 기록될 데이터 값을 식별한다. 그러나, 내용 주소화 메모리(content addressable memory, CAM)로서 알려진 다른 타입의 저장 장치에서, 데이터 값은 서치 키로서 저장 장치에 제공될 수 있고, 그다음, 이러한 저장 장치는 이러한 서치 키를 내용 주소화 메모리에 저장된 각각의 워드와 비교하고, 저장된 데이터 워드중 하나가 서치 키와 일치하는 경우에 일치 표시를 리턴한다.
하나의 특징으로부터, 본 기술은,
데이터 값을 저장하는 복수의 저장 셀;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하는 제어 회로; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용된 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인의 적어도 하나에서 신호 레벨을 감지하는 감지 회로를 포함하는 저장 장치를 제공한다.
다른 특징으로부터, 본 기술은,
데이터 값을 저장하기 위한 복수의 저장 셀 수단;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하기 위한 제어 수단; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 신호 레벨을 감지하기 위한 감지 수단을 포함하는 저장 장치를 제공한다.
또 다른 특징으로부터, 본 기술은,
저장 장치의 적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하는 단계;
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 감지하는 단계를 포함하는 방법을 제공한다.
다른 특징으로부터, 본 기술은 이러한 저장 장치를 포함하는 데이터 처리 장치를 제공한다.
다른 특징으로부터, 본 기술은, 메모리 컴파일러 컴퓨터 프로그램과 연관된 메모리 구조로부터 메모리 장치의 인스턴스를 생성하도록 컴퓨터를 제어하기 위한 메모리 컴파일러 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 메모리 구조는 회로 소자의 정의 및 이러한 회로 소자를 조합하기 위한 데이터 정의 규칙(defining rule)을 규정하여, 상기 생성된 인스턴스는 상술된 저장 장치를 포함하는 메모리 장치를 규정하는 컴퓨터 판독가능 저장 매체를 제공한다.
도 1은 저장 장치에서의 AND 연산의 결과를 결정하는 예를 개략적으로 도시하는 도면이다.
도 2는 저장 장치 내의 XOR 연산의 결과를 결정하는 예를 도시하는 도면이다.
도 3은 차동(differential) 감지 모드 및 단일 종단(single-ended) 감지 모드를 갖는 감지 증폭기의 예를 도시하는 도면이다.
도 4는 저장 장치 내의 논리 연산의 결과를 알아내는 방법을 도시하는 도면이다.
도 5는 논-내용 주소화 모드 및 내용-주소화 모드를 갖는 저장 장치의 예를 도시하고, 이진 내용 주소화 모드에서 저장 장치를 사용하여 판독 연산을 실행하는 예를 도시하는 도면이다.
도 6은 논-내용 주소화 모드에서 판독 연산을 실행하는 방법을 도시하는 도면이다.
도 7는 논-내용 주소화 모드에서 기록 연산을 실행하는 방법을 도시하는 도면이다.
도 8은 이진 내용 주소화 모드에서 서치 연산을 실행하는 방법을 도시하는 도면이다.
도 9는 이진 내용 주소화 모드에서 기록 연산을 실행하는 예를 도시하는 도면이다.
도 10은 이진 내용 주소화 모드에서 기록 연산을 실행하는 방법을 도시하는 도면이다.
도 11은 3진 내용 주소화 모드에서 저장 장치를 동작시키는 예를 도시하는 도면이다.
도 12은 3진 내용 주소화 모드에서 서치 동작을 실행하기 위한 방법을 도시하는 도면이다.
도 13은 3진 내용 주소화 모드에서 기록 동작을 실행하는 방법을 도시하는 도면이다.
도 14는 메모리 장치의 예를 생성하도록 사용될 수 있는 메모리 컴파일러의 예를 도시하는 도면이다.
도 15는 메모리 컴파일러를 실행하는데 사용될 수 있는 컴퓨팅 장치의 예를 설명하는 도면이다.
도 2는 저장 장치 내의 XOR 연산의 결과를 결정하는 예를 도시하는 도면이다.
도 3은 차동(differential) 감지 모드 및 단일 종단(single-ended) 감지 모드를 갖는 감지 증폭기의 예를 도시하는 도면이다.
도 4는 저장 장치 내의 논리 연산의 결과를 알아내는 방법을 도시하는 도면이다.
도 5는 논-내용 주소화 모드 및 내용-주소화 모드를 갖는 저장 장치의 예를 도시하고, 이진 내용 주소화 모드에서 저장 장치를 사용하여 판독 연산을 실행하는 예를 도시하는 도면이다.
도 6은 논-내용 주소화 모드에서 판독 연산을 실행하는 방법을 도시하는 도면이다.
도 7는 논-내용 주소화 모드에서 기록 연산을 실행하는 방법을 도시하는 도면이다.
도 8은 이진 내용 주소화 모드에서 서치 연산을 실행하는 방법을 도시하는 도면이다.
도 9는 이진 내용 주소화 모드에서 기록 연산을 실행하는 예를 도시하는 도면이다.
도 10은 이진 내용 주소화 모드에서 기록 연산을 실행하는 방법을 도시하는 도면이다.
도 11은 3진 내용 주소화 모드에서 저장 장치를 동작시키는 예를 도시하는 도면이다.
도 12은 3진 내용 주소화 모드에서 서치 동작을 실행하기 위한 방법을 도시하는 도면이다.
도 13은 3진 내용 주소화 모드에서 기록 동작을 실행하는 방법을 도시하는 도면이다.
도 14는 메모리 장치의 예를 생성하도록 사용될 수 있는 메모리 컴파일러의 예를 도시하는 도면이다.
도 15는 메모리 컴파일러를 실행하는데 사용될 수 있는 컴퓨팅 장치의 예를 설명하는 도면이다.
도 1은 행과 열로 배열된 저장 셀(4)의 어레이를 갖는 저장 장치(2)의 예를 도시하고 있고, 각각의 저장 셀(4)은 상응하는 행에 대한 워드라인 WL 및 상응하는 열에 대한 한 쌍의 비트라인 BL, BLB의 교차점에 있다. 도 1의 우상에 도시된 바와 같이, 각각의 저장 셀은 한 쌍의 교차 결합된 인버터 6-0, 6-1 및, 워드라인 WL에 인가된 신호에 응답하여 각각의 비트라인 BL, BLB에 상기 교차 결합된 인버터를 결합시키기 위한 2개의 액세스 트랜지스터 8-0, 8-1를 포함하는 6T SRAM(6-트랜지스터 스태틱 랜덤 액세스 메모리) 셀을 포함하고 있다. 6T SRAM 셀 이외의 다른 실시예가 저장 셀을 사용할 수 있다. 그러나, 6T SRAM 셀을 사용하면 회로 면적을 줄이는데 도움이 될 수 있다.
도 1에 도시된 바와 같이, 저장 장치는 셀(4)의 각각의 행에 대한 워드라인 WL에 어서트된 신호를 제어하기 위한 (제어 회로의 예인) 워드라인 구동기(10), 및 메모리 어레이에 저장된 데이터 값을 식별하는 하나 이상의 주소를 수신하고 워드라인 구동기(10)를 제어하여, 데이터 값을 저장하는 셀에 상응하는 워드라인 신호를 어서트하기 위한 어드레스 디코더(12)를 갖고 있다. 또한, 셀의 각각의 열은 해당 열에 대한 비트라인 BL, BLB 상의 신호를 감지하기 위한 상응하는 감지 증폭기(14), 및 기록 연산 동안 비트라인 BL, BLB 상의 신호를 구동하기 위한 비트라인 구동기(간결성을 위해 도 1에 도시되어 있지 않다)를 갖고 있다. 판독 연산 동안, 감지 증폭기(14)는 감지 증폭기가 특정 열에 대한 한 쌍의 비트라인 BL, BLB 사이의 차이를 감지하는 차동 감지 모드에서 동작한다. 그러나, 감지 증폭기(14)는 또한 감지 증폭기(14)가 한 쌍의 비트라인 BL, BLB의 각각의 신호 레벨을 기준 전압 Vref와 독립적으로 비교하는 단일 종단 감지 모드를 지원한다. 감지 증폭기는 아래의 도 3에서 보다 상세하게 설명되어 있다.
판독 연산이 선택된 저장 센(4)로부터 데이터 값을 판독하기 위해, 해당 셀을 식별하는 주소가 어드레스 디코더(12)에 제공되어 있다. 어드레스 디코더(12)는 선택된 저장 셀(4)을 포함하는 열에 대한 비트라인 BL, BLB을 하이로 프리차지하도록 감지 증폭기(14)를 제어한다. 또한, 워드라인 구동기(10)는 선택된 저장 셀을 포함하는 행의 워드라인 WL을 어서트한다. 이로 인해, 선택된 셀에 대한 액세스 트랜지스터(8)이 턴온되어, 교차 결합된 인버터(6)가 상응하는 비트라인 BL, BLB에 결합된다. 저장 셀의 현재 상태에 따라, 한 쌍의 비트라인 BL, BLB중 하나는 0으로 떨어지고 다른 하나는 1의 프리차지 상태에 머물 것이다. 감지 증폭기(14)는 차동 감지 모드에서 어느 비트라인이 제로로 떨어지는지 검출하고 이에 따라 선택 셀의 상태를 나타내는 신호를 출력한다. 이러한 예에서, BL 비트라인이 0으로 떨어지고 BLB가 1에 머문다면, 이것은 셀이 논리 0을 나타내는 것을 가리키고, BL 비트라인이 1에 머물고 BLB가 0으로 떨어지면, 이것은 셀이 논리 1을 나타내는 것을 가리킨다(즉, BL 비트라인은 셀의 이진 상태를 나타낸다). 그러나, 다른 예가 반대 맵핑을 사용할 수도 있다는 것을 이해할 것이다.
기록 연산에 있어서, 선택된 열에 대한 비트라인은 기록되는 비트 값에 기초하여 선택된 신호에 의해 구동된다. 이러한 예에서, 논리 1을 셀에 기록할 때, 비트라인 BL은 하이로 구동되고 비트라인 BLB는 로우로 구동되고, 논리 0를 기록하는 것에 대해서는, 비트라인 BL이 로우로 구동되고 비트라인 BLB는 하이로 구동된다(다시, 이것은 다른 실시예에서 다른 방식으로 순환될 수도 있다). 워드라인 구동기(10)는 선택된 저장 셀(4)에 대한 워드라인을 어서트하여 액세스 트랜지스터(8)는 교차 결합된 인버터(6)를 비트라인에 결합하도록 턴온하고, 그래서 인버터(6)에 의해 형성된 래치는 비트라인 BL, BLB상의 신호에 상응하는 상태로 설정된다.
상기 단락이 단일 저장 셀을 판독하거나 기록하는 것에 대해 설명하지만, 동일한 행에 대한 워드라인이 어서트되어 있는 동안 다수의 열의 비트라인에서의 판독 신호를 감지하거나 다수의 열의 비트라인에서의 기록 신호를 구동함으로써 동일한 행의 다수의 셀로부터 비트 값을 판독하거나 기록하는 것 역시 가능하다.
저장 장치(2)는 또한 저장 장치(2)의 동일한 열의 적어도 2개의 저장 셀에 저장된 데이터 값에 논리 연산(또는 '계산 연산')을 실행하는 것을 지원한다. 예를 들어, 도 1은 AND 연산의 실행의 예를 도시하고 있다. 저장 장치에서 논리 연산을 실행할 때, 선택된 열에 대한 감지 증폭기(14)가 단일 종단 감지 모드에서 동작한다. 어드레스 디코더(12)는 이러한 연산이 적용되는 동일한 열의 저장 셀을 식별하는 2개의 이상의 주소를 수신한다. 예를 들어, 이러한 예에서, 이러한 주소는 열 n에서 셀 4-i, 4-j에 대한 것이다. 열 n에 대한 비트라인 BLn, BLBn은 하이로 프리차지되고, 워드라인 구동기(10)는 선택된 셀 4-i, 4-j를 포함하는 행에 대해 워드라인 WLi, WLj를 어서트한다. 이로 인해 셀 4-i, 4-j에 대한 액세스 트랜지스터(8)이 턴온되어 이러한 셀의 교차 결합된 인버터(6)는 상응하는 열에 대해 비트라인 BLn, BLBn에 결합된다. 그다음, 열 n에 대한 감지 증폭기(14)는 셀 4-i, 4-j에 저장된 비트 값에 AND 연산을 실행한 결과를 나타내는, 비트라인 BLn 상의 신호 레벨을 검출한다.
즉, 이러한 예에서, 저장 셀은 인버터 6-0의 출력이 1이고 인버터 6-1의 출력이 0이면 1의 비트 값을 나타내는 것으로 생각된다. 따라서, 셀 4-i, 4-j 모두 '1' 비트 상태라면(즉, AND의 결과가 1이다), 셀 4-i, 4-j 어느 것도 비트라인 BLn에 '0'을 출력하지 않을 것이고, 따라서 비트라인 BLn의 신호는 1에 머물 것이다. 셀 4-i, 4-j의 어느 하나 또는 모두가 '0' 비트상태라면(즉, AND의 결과가 0이라면), 인버터 6-0은 비트라인 BLn에 '0'을 출력할 것이고, 따라서, 감지 증폭기 BLn은 0으로 떨어질 것이다. 따라서, BLn 비트라인의 신호 레벨은 해당 비트라인에 결합된 셀의 각각에 인가된 AND 연산의 결과를 나타낸다.
도 1이 동일한 열의 2개의 셀에 저장된 비트 값에 대한 AND 연산을 실행하는 예를 도시하고 있지만, 3개 이상의 행에 대한 워드 라인을 동시에 구동함으로써, 3개 이상의 셀에 이러한 연산을 적용하는 것 역시 가능하다. 다시, 선택된 열의 비트라인 BLn은 AND 결과가 1이라는 것을 나타내는 '1' 비트 상태에 모든 선택된 셀이 있는 경우에 하이로 머물 것이다.
또한, 도 1이 AND 연산을 위한 예를 도시하고 있지만, NAND 연산은 NAND 연산의 결과가 AND 연산의 결과에 반대라는 점을 제외하면 동일한 방식으로 실행될 수 있다. 그래서, NAND에 대해, BLn이 하이로 머물러 있다면, NAND 결과는 0이고, BLn이 로우로 떨어지면 NAND 결과는 1이다. NAND 결과는 선택된 열의 BLn 비트라인으로부터 감지된 신호를 반전시킴으로써 얻을 수 있다.
NOR 또는 OR 연산은 이번에, 선택된 열에 대한 BLBn 워드라인이 감지 증폭기(14)에 의해 감지된다는 점을 제외하면 유사한 방식으로 실행될 수 있다. 다시, 선택된 열에 대한 비트라인은 하이로 프리차지되고, 이러한 열의 2개 이상의 셀에 대한 워드라인은 이러한 셀(4)을 비트라인 BLn, BLBn에 결합시키도록 어서트된다. 선택된 셀의 모두가 '0' 비트 상태라면(즉, 모든 선택된 셀에 인가된 NOR 연산이 1의 결과를 산출할 것이라면), 선택된 셀의 모두는 BLBn 비트라인에 '1' 값을 제공하고 BLn 비트라인에 '0'을 제공할 것이고, 그래서 BLBn 비트라인은 하이로 남을 것이다. 한편, 선택된 셀중 하나가 '1' 비트 상태라면(즉, NOR 결과가 0이라면), BLBn 비트라인은 선택된 셀의 적어도 하나가 '0'을 비트라인 BLBn에 제공할 것이기 때문에 0으로 떨어질 것이다. 따라서, 비트라인 BLBn의 값은 NOR 연산의 결과를 나타낸다. 반대로, OR 연산의 결과는 단순히 비트라인 BLBn의 값을 반전시킴으로써 표시될 수 있다 - BLBn이 하이로 머물러 있다면 OR 결과는 0이고, BLBn이 로우로 떨어진다면 OR 결과는 1이다. 트랜지스터 8-0. 다시, NOR 또는 OR 연산이 동일한 열의 2개, 3개 이상의 셀에 적용될 수 있다.
도 2는 저장 장치(2)에서 실행되는 논리 연산의 다른 예를 도시하고 있다. 도 2에서, 논리 연산은 배타적 OR(XOR) 연산이다. 워드라인 구동기 및 어드레스 디코더(10, 12)는 도 2에서 간결성을 위해 도시되어 있지 않다. XOR 연산에 있어서, 선택된 열에 대한 비트라인 BLn, BLBn은 다시 프리차지되고 2개의 행 WLi, WLj에 대한 워드라인은 어서트된다. XOR 연산에 있어서, 선택된 열에 대한 감지 증폭기(14)는 비트라인 BLn, BLBn 모두에서 신호 레벨을 감지한다. 비트라인 BLn, BLBn에서의 신호가 모두 0으로 떨어지면(예를 들어, 도 2의 열 0의 예 참조), 이것은 선택된 셀의 하나가 '1'을 나타내고 다른 것은 '0'을 나타내어 XOR 결과가 1이라는 것을 의미한다. 한편, 비트라인 BL, 또는 비트라인 BLB가 하이로 머물러 있다면 이것은 모든 셀이 동일한 상태에 있어서, XOR 연산의 결과가 0이라는 것을 의미한다. 예를 들어, XOR에 있어서, 비트라인 BLn, BLBn으로부터의 값이 NOR 게이트로 전달될 수 있고, NOR 게이트의 출력이 XOR을 나타낼 수 있다. 유사한 방식으로, 배타적 NOR(XNOR) 연산 역시 단순히 XOR 연산의 결과를 반전시킴으로써, 또는 BLn, BLBn으로부터 감지된 값을 OR 게이트의 출력이 XNOR 결과를 나타내는 OR 게이트에 전달함으로써 지원될 수 있다.
도 1 및 도 2가 동일한 열의 2개 이상의 비트에 논리 연산을 실행하는 예르 도시하고 있지만, 셀(4)의 각각의 행이 데이터 워드를 나타내는 것으로 생각되는 경우에 비트단위 논리 연산은 상술된 연산을 다수의 열에 대해 병렬로 실행한 다음 각각의 열의 결과에 기초하여 비트단위 논리 연산의 전체 결과를 알아냄으로써 2개 이상의 데이터 워드에 적용될 수 있다.
그래서, 이러한 예는 AND, NAND, OR, NOR, XOR 및 XNOR과 같은 논리 연산의 결과가 저장 장치(2)에서 생성될 수 있다는 것을 보여주고 있어서, 이러한 논리 연산의 결과를 알아내기 위해 감지 증폭기로부터 하류로 프로세서 또는 일부 다른 종류의 처리 회로로 저장 장치(2)에 저장된 데이터 값을 전송할 필요가 없다. 이것은 처리 회로에서의 처리량을 절감하여, 다른 연산을 실행하기 위한 시간 또는 리소스가 면제될 수 있다. 또한, 이것은 메모리로의 단일 액세스가 논리 연산에서 결합되는 각각의 개별적인 값을 판독하도록 별개의 판독 액세스를 요청하지 않고 논리 연산의 결과를 산출할 수 있기 때문에 메모리 액세스의 수를 줄이는데 도움이 된다. 그래서, 이러한 방식은 저장 장치(2)를 포함하는 데이터 처리 장치의 성능을 향상시킬 수 있다.
동일한 열의 다수의 셀이 동시에 활성화되고 비트라인에 결합되기 때문에, 일부 메모리 인스턴스에서, 활성화된 메모리 셀의 하나에 저장된 상태가 동일한 세트의 비트라인에 결합된 다른 셀의 하나의 상태에 기초하여 변할 수도 있다는 위험이 때로 존재할 수도 있다. 이러한 동시에 접근된 행의 셀의 판독 교란을 피하기 위해, 워드라인 전압은 낮추어질 수 있거나 셀로의 공급 전압이 높아질 수 있어서, 이러한 셀에 대한 액세스 트랜지스터(80)은 보다 덜 강하게 턴온된다. 그래서, 워드라인 전압은 메모리 셀의 인버터 6-0, 6-1에 제공된 공급 전압 보다 낮을 수 있다. 이것은 비트라인 BL, BLB의 신호가 비트셀(4)에 저장된 상태의 반대 상태로 완전히 스윙될 지라도, 판독 교란을 피할 수 있다는 것을 의미한다. 임의의 공지된 판독 어시스트 또는 판독 교란 회피 기술이 워드라인 전압을 줄이는데 사용될 수 있다.
도 3은 도 1 및 도 2에 도시된 저장 장치에 사용될 수 있는 감지 증폭기(14)의 예를 도시하고 있다. 감지 증폭기(14)는 각각의 비트라인 BL, BLB의 신호 레벨은 기준 전압에 독립적으로 비교되고 하나의 비트라인의 신호는 다른 비트라인의 신호에 영향을 주지 않는 단일 종단 감지 모드를 갖고 있다. 이것은 상술된 논리 연산을 지원하는데 유용하다. 역시 판독 연산에 대한 단일 종단 감지 모드에서 감지 증폭기(14)를 동작시키는 것이 가능하지만, 감지 증폭기가 한 쌍의 비트라인 BL, BLB 사이의 차이를 감지하는 차동 감지 모드를 사용하여 보다 빠른 판독 연산이 실행될 수 있는데, 그 이유는 차동 감지 모드에서, 감지 증폭기(14)가 비트라인 사이의 임의의 차이를 증폭시켜 비트라인을 보다 신속하게 반대 상태쪽으로 당길 수 있기 때문이다.
따라서, 도 3은 차동 및 단일 종단 감지 모드 모두를 지원하는 재구성가능한 감지 증폭기 설계를 보여주고 있다. 감지 증폭기(14)는 감지 증폭기(14)를 비트라인 BL, BLB에 선택적으로 결합하기 위한 샘플링 트랜지스터(18)를 포함하고 있다. 판독 또는 계산 연산의 시작에서 비트라인을 하이로 하기 위해 프리차지 전압에 비트라인을 결합하기 위한 프리차지 회로(20)가 제공되어 있다. 감지 증폭기(14)는 2개의 쌍의 교차 결합된 인버터(22-0, 22-1) 및, 감지 증폭기(14)가 단일 종단 또는 차동 감지 모드에 있는지를 선택하기 위한 제어 게이트(24-0, 24-1)를 포함하고 있다. 판독 연산에 사용되는 차동 감지 모드에서, 제어 신호 se는 0이어서 제어 게이트(24-0)는 오프이고 제어 게이트(24-1)는 온이고, 따라서 각각의 쌍의 교차 결합된 인버터는 비트라인 BL, BLB 모두에 접속된다. 판독되는 저장 셀의 상태에 따라, 비트라인중 하나가 로우로 떨어져, 한 쌍의 교차 결합된 인버터가 비트라인을 0으로 더 아래로 당긴다. 이로 인해 판독 연산이 보다 신속하게 실행되돌 수 있도록 하는 신속 감지 연산을 가능하다. 한편, 단일 종단 감지 모드에 있어서 제어 신호 se는 하이로 되어 게이트(24-0)를 턴온하고 게이트(24-1)를 턴오프한다. 이제 각각의 쌍의 교차 결합된 인버터는 비트라인중 하나와 기준 전압 Vref 사이에 결합된다. 제1 교차 결합된 쌍(22-0)은 비트라인 BLB에 결합되고, 비트라인 BLB가 기준 전압 아래로 떨어지는 경우에 이것은 감지되고 비트라인은 교차 결합된 쌍(22-0)에 의해 더 아래로 당겨진다. 제2 교차 결합된 쌍(22-1)은 비트라인 BL에 대한 동일한 것을 행한다. 이러한 방식으로, 각각의 비트라인의 레벨은 기준 전압과 독립적으로 비교될 수 있다. 그다음, 각각의 쌍의 교차 결합된 인버터의 상태는 상술된 방식으로 계산(논리) 연산의 결과를 결정하기 위해 판독될 수 있다. 많은 다른 감지 증폭기 설계 역시 사용될 수 있다는 것을 이해할 것이다.
도 3은 각각의 교차 결합된 쌍(22-0, 22-1)에서, 인버터중 하나가 다른 인버터 보다 큰 구동력을 갖는 예를 도시하고 있다. 양측 쌍에서, 기준 전압 vref를 수신하는 입력을 갖는 인버터는 다른 인버터보다 약한 구동력을 갖고 있다. 그러나, 이것은 필수는 아니고, 다른 예에서 동일한 구동력을 갖는 인버터의 쌍을 제공하는 것이 가능하다. 인버터 크기의 스큐잉은 비트라인 bl 또는 blb의 신호 레벨과 비교하기 위한 기준 전압 vref이 제공된 경우에는 필요하지 않다. 한편, vref = vdd이라면, 도시된 각각의 쌍의 인버터 크기의 스큐잉은 기준 전압을 내부적으로 생성하기 위해 사용될 수 있다.
도 4는 저장 장치의 2개 이상의 셀의 데이터 값에 인가되는 논리 연산의 결과를 생성하도록 계산 연산을 실행하는 방법을 도시하고 있다. 단계 30에서, 감지 증폭기가 단일 종단 감지 모드에 배치되어 있다. 단계 32에서 적어도 하나의 선택된 열에 대한 비트라인 BL, BLB가 1로 프리차지된다. 단계 34에서 2개 이상의 행에 대한 워드라인이 워드라인 구동기(10)에 의해 어서트되어 열 당 다수의 셀을 선택한다. 이러한 워드라인 구동기는 제공된 주소에 기초하여 어느 워드라인을 어서트할지를 선택한다. 단계 36에서, 어느 논리 연산이 실행되고 있는지를 알아낸다. AND 연산에 있어서, 단계 38에서 감지 증폭기(14)가 비트라인 BLn을 감지하고, 단계 40에서 BLn이 1인지 여부를 체크하고, 1이라면 단계 42에서 AND 결과는 1로 판정된다. 비트라인 BLn이 0이라면 단계 44에서 AND 결과는 0으로 판정된다. NAND 연산에 있어서, 비트라인 BLn이 단계 46에서 감지되면 단계 48에서 BLn의 신호가 1인지 여부가 결정된다. 1이라면, NAND 결과는 0이고(단계 50), BLn이 0이라면 NAND 결과는 1이다(단계 52). NOR 연산에 있어서, 감지 증폭기(14)는 단계 54에서 비트라인 BLBn의 신호 레벨을 감지한다. 단계 56에서 BLBnd의 신호가 1인지 여부가 판정된다. 1이라면, NOR 결과는 1이고(단계 58), BLBn이 0이라면 NOR 결과는 단계 60에서 0이다. 마찬가지로 OR 연산에 있어서, 비트라인 BLBn이 단계 62에서 감지되고 단계 64에서 BLBn의 신호가 1인지 여부가 판정된다. 1이라면, OR 결과는 단계 66에서 0이고 BLBn이 0이라면 OR 결과는 단계 68에서 1이다. XOR 연산에 있어서, 단계 70에서 비트라인 BLn 및 BLBn의 신호 레벨이 감지되고 단계 72에서 양측이 0으로 떨어졌는지 여부가 판정된다. 그러하다면, 단계 74에서 XOR 연산의 결과는 1이다. 단계 76에서 비트라인 BLn, BLBn의 어느 하나가 여전히 1이라면 XOR 결과는 0으로 판정된다. 논리 연산이 XNOR이라면, 단계 80, 82는 XOR에 대해 단계 70, 72와 동일하지만, 이번에는 BLn 및 BLBn 양측이 0이라면 XNOR 결과는 0이고(단계 84), BLn 또는 BLBn이 1이라면, XNOR 결과는 1이다(단계 86). 단계 36 내지 86는 다수의 열에 대해 병렬로 실행될 수 있다. 또한, 동일한 세트의 셀에 적용된 2개 이상의 상이한 종류의 논리 연산의 결과는 도 4에 도시된 상이한 방식으로 BLn, BLBn을 감지하고 BLn, BLBn로부터 판독된 값을 해석함으로써 동시에 판정될 수도 있다.
도 5는 행과 열로 배열된 저장 셀(104)의 어레이를 포함하는 저장 장치(100)의 예를 도시하고 있다. 이러한 저장 장치는 판독 또는 기록 연산을 지원하는 논-내용-주소화(또는 SRAM) 모드 및, 적어도 서치 연산 및 기록 연산을 지원하는 내용-주소화 모드(이진 또는 3진 내용 주소화 모드)를 갖고 있다. 논-내용-주소화 모드에서, 저장 장치(100)는 SRAM으로서 기능하고, 내용-주소화 모드에서, 저장 장치(100)는 입력으로서 공급된 "서치 키"에 일치하는 데이터 워드에 대해 메모리가 서치될 수 있는 이진 내용 주소화 메모리(BCAM) 또는 3진 내용 주소화 메모리(TCAM)로서 기능한다. 일부 실시예는 BCAM 및 TCAM 모드중 하나 또는 다른 것만을 지원할 수 있고, 다른 예는 BCAM 및 TCAM 모드 모두를 지원할 수 있다. 현재 모드가 하술되는 바와 같이 적절한 제어 신호를 생성하고 이러한 모드에 대한 결과를 감지하도록 저장 장치(예를 들어, 어드레스 디코더, 워드 라인 드라이버 및 감지 증폭기)에 대한 제어 회로를 구성하는 제어 입력에 기초하여 선택될 수 있다. 현재 모드는 (동일한 저장 장치가 어떤 때는 하나의 모드에서 동작하고 또 어떤 때는 다른 모드에서 동작하도록) 동적으로 선택될 수 있거나 (동일한 저장 장치 설계가 다수의 장치에 제공될 수 있지만, 이러한 장치의 일부는 SRAM 모드에서 저장 장치를 사용하고 다른 장치는 BCAM 또는 TCAM 모드에서 저장 장치를 사용하도록) 비교적으로 정적으로 선택될 수 있다.
저장 장치(100)는 각각 한 쌍의 교차 결합된 인버터(106) 및 액세스 트랜지스터(108)를 포함하는 6T(6 트랜지스터) SRAM 비트셀(104)의 어레이를 포함하고 있다. 6T 셀은 전형적인 BCAM 또는 TCAM 설계에 사용된 9T/10T/16T 비트 셀 보다 면적에 있어서 일반적으로 보다 효율적이다. 6T 셀을 사용함으로써 회로 면적은 크게 감소될 수 있는데, 그 이유는 보다 적은 수의 트랜지스터가 존재하는 이유뿐만 아니라 6T SRAM 셀의 레이아웃이 당업계에 알려진 푸시 룰(pushed rule) 설계 기술을 사용하여 보다 소형으로 만들어질 수 있다는 이유 때문이다. 따라서, 6T SRAM 셀을 사용함으로써 상당한 면적 장점을 얻을 수 있다. 또한, 도 5에 도시된 예는 워드라인 및 비트라인으로부터 구별되는 서치 연산에 대한 서치 및 매치 라인을 제공하는 전형적인 BCAM/TCAM 설계에서는 불가능한, 행 당 2개의 워드라인이 존재하도록 워드라인이 분할된) SRAM 모드에서 판독 또는 기록을 위해 사용되는 동일한 워드라인 및 비트라인을 사용하녀 BCAM/TCAM 모드에서 내용 주소화 서치 연산 및 기록 연산을 제공한다.
도 5에 도시된 바와 같이, 저장 장치(100)는 셀(104)의 행 당 2개의 워드라인을 갖고 있다. 동일한 행에 대한 2개의 워드라인은 아래에서 좌측 및 우측 워드라인(wll, wlr)을 가리키지만, 용어 "좌측" 및 "우측"은 용이한 설명을 위해 사용된 라벨이고, 반드시 집적 회로의 워드라인의 임의의 특정 위치결정을 나타내는 것은 아니다. 각각의 셀은 해당 열에 대한 비트라인 bl, blb에 해당 셀의 교차 결합된 인버터 106-0, 106-1을 결합하기 위한 액세스 트랜지스터 108-0, 108-1을 갖고 있다. 액세스 트랜지스터 108-0은 상응하는 행에 대해 좌측 워드라인 wll에 결합된 게이트를 갖고 있고, 좌측 워드라인의 어서션에 응답하여 상응하는 열에 대해 교차 결합 인버터를 blb 비트라인에 결합한다. 마찬가지로, 액세스 트랜지스터 108-1은 상응하는 행에 대해 우측 워드라인이 wlr에 결합된 게이트를 갖고 있고, 우측 워드라인의 어서션에 응답하여 상응하는 열에 대해 교차 결합 인버터를 bl 비트라인에 결합한다. 그래서, 2개의 워드라인을 제공함으로써 각각의 셀은 각각의 비트라인에 독립적으로 결합될 수 있어서, 하나의 비트라인에 결합되지만 다른 비트라인에는 결합될 수 없다. 이것은 내용 주소화 모드를 구현하는데 있어 유용하다.
셀의 각각의 열은 단일 종단 감지 모드 및 차동 감지 모드를 갖는 상응하는 감지 증폭기(114)를 갖고 있다. 예를 들어, 감지 증폭기(114)는 도 3에 도시된 회로를 사용하여 구현될 수 있다. 이러한 단일 종단 감지 모드는 내용 주소화 모드(BCAM 또는 TCAM)에서 사용되고 차동 감지 모드는 논-내용 주소화 모드(SRAM) 모드에서 사용된다. 저장 장치(100)는 또한 워드라인 wll, wlr에 대한 제어 신호를 생성하기 위한 워드 라인 드라이버(110) 및 선택된 주소에 상응하는 셀(열)을 선택하기 위한 제어 신호를 생성하도록 메모리에 공급된 주소를 디코딩하기 위한 어드레스 디코더(112)를 갖고 있다.
도 6은 논-내용-주소화(SRAM) 모드 동안 판독 연산을 실행하는 방법을 도시하고 있다. 단계 120에서, 선택된 열에 대한 감지 증폭기(114)는 차동 감지 모드에서 동작된다. 단계 122에서, 선택된 열에 대한 비트라인 bl, blb는 1로 프리차지된다. 단계 124에서, 워드라인 구동기(110)는 디코더(112)에 공급된 판독 주소에 따라, 선택된 셀을 포함하는 셀의 행에 대한 좌우 워드라인 wll, wlr 모두를 어서트한다. 단계 126에서, 선택된 열에 대한 감지 증폭기는 해당 열에 대한 비트라인 bl, blb를 감지하고, 단계 128에서, 비트라인 bl의 신호가 1인지 여부가 판정된다. 1이라면, 선택된 셀에 대한 비트 상태는 1이고, bl이 0이라면 선택된 셀의 비트 상태는 0이다. 다수의 열에서 동일한 행의 셀에 저장된 비트가 각각의 열의 감지 증폭기를 사용하여 동시에 판독될 수도 있다는 것이 이해될 것이다.
도 7은 논-내용-주소화 모드 동안 SRAM 기록을 실행하는 방법을 도시하고 있다. 어드레스 디코더는 선택된 셀에 대한 주소를 수신하고 셀에 기록되는 비트를 특정하는 데이터를 기록한다. 기록 데이터가 1 또는 0인지 여부가 판정된다(단계 130). 기록 데이터가 1이라면, 선택된 셀을 포함하는 열에 대한 비트라인 bl은 1로 구동되고 반대 비트라인 blb는 0으로 구동된다(단계 132). 한편, 0이 셀에 기록될 것이라면 비트라인 bl은 0으로 구동되고 비트라인 blb는 1로 구동된다. 단계 136에서, 워드라인 구동기(110)는 선택된 셀을 포함하는 행에 대한 좌우 워드라인 wll, wlr 모두를 어서트하고, 이로 인해 해당 셀에 대한 액세스 트랜지스터(108)가 셀을 상응하는 열에 대한 비트라인 bl, blb 모두에 결합하여서 교차 결합된 인버터는 비트라인 bl, blb에서 구동되는 신호에 상응하는 비트상태에 놓인다. 다시, 동일한 열의 다수의 셀은 각각의 비트가 0 또는 1의 이진 값을 나타내는지 여부에 따라 0-1 및 1-0의 각각의 패턴으로 다수의 열의 비트라인을 구동함으로써 동시에 기록될 수 있다.
논-내용-주소화 모드에서, 동일한 행의 셀에 저장된 비트는 다수의 비트를 포함하는 데이터 워드를 나타내는 것으로 생각될 수 있는데, 이러한 다수의 비트는 해당 열에 워드라인을 어서트하고 각각의 열에 대한 비트라인의 신호를 구동함으로써 단일 사이클에서 판독되거나 기록될 수 있다. 그래서, 논-내용-주소화 모드에서, 데이터 워드가 행 단위로 저장될 수 있다.
이에 반해서, 내용 주소화 모드에서, 데이터 워드는 저장 장치(100)에서 열 단위로 저장된다. 그래서, 각각의 열은 해당 열의 각각의 셀이 데이터 워드의 하나의 데이터 상태를 나타내는 상태로 데이터 워드를 나타낼 수 있다. 이진 내용 주소화(BCAM) 모드에서, 각각의 데이터 상태는 1 또는 0을 나타낸다. 이러한 예에서, 셀은 인버터(106-0)의 출력이 1이고 인버터(106-1)의 출력이 0이라면 이진값 1을 나타내는 것으로 생각된다(즉, 비트라인에 결합될 때 비트라인 bl은 1이 될 것이고 비트라인 blb는 0이 될 것이다). 이진값 0은 인버터의 반대 상태에 의해 나타난다. 그러나, 다른 실시예가 반대 맵핑을 선택할 수 있고, 이러한 경우에 0 및 1의 서치 상태를 적용하기 위한 하술된 제어 신호는 반전될 것이다.
도 8은 BCAM 모드에서 서치 연산을 실행하는 방법을 도시하고 있다. 단계 140에서, 감지 증폭기는 단일 종단 감지 모드에서 동작된다. 단계 142에서, 비트라인 bl, blb는 상응하는 데이터 워드가 서치 키에 대해 비교되는 하나 이상의 열에 대해 하이로 프리차지된다(단지 서치 키를 저장된 데이터 워드의 부분집합에 비교하는 것이 가능하지만, 아래에서 용이한 설명을 위해 이러한 서치 키가 각각의 열의 데이터 워드에 비교되는 것으로 가정할 것이다).
워드 라인 구동기(110)에는 저장 장치(100)에 저장되는 각각의 데이터 워드의 상응하는 데이터 상태에 비교되는 서치 상태의 스트링을 나타내는 서치 키가 공급된다. BCAM 모드에서, 각각의 서치 상태는 1 또는 0을 나타내고, 서치 상태는 상응하는 데이터 상태와 동일한 상태에 있는 경우에 상응하는 데이터 상태에 일치하는 것으로 간주한다. 각각의 행은 서치 키의 각각의 서치 상태에 상응한다. 단계 144에서, 워드라인 구동기(110)는 셀의 각각의 행에 대해 좌우 워드라인 wll, wlr 상의 신호를 어서트한다. 좌우 워드라인 wll, wlr에 제공되는 신호는 서치 키 내의 상응하는 서치 상태에 의존한다. 각각의 행에 대해, "Serch_data"는 우측 워드라인 wlr에 인가되고 "search_data_bar"(반전된 서치 데이터)는 좌측 워드라인 wll에 인가된다. 그래서, 상응하는 서치 상태가 0인 행에 대해, 좌측 워드라인 wll은 어서트되고(=1) 우측 워드라인 wlr은 디어서트되어(=0), 액세스 트랜지스터(108-0)를 턴온하고 액세스 트랜지스터(108-1)을 턴오프하여 해당 행의 셀(104)의 교차 결합된 인버터가 상응하는 열에 대해 비트라인 bl이 아닌 비트라인 blb에 결합된다. 상응하는 서치 상태가 1인 행에 대해, 우측 워드라인 wlr은 어서트되고(=1) 좌측 워드라인 wll은 디어서트되어(=0), 액세스 트랜지스터(108-1)는 턴온되고 액세스 트랜지스터(108-0)은 턴오프되어, 해당 행의 셀의 교차 결합된 인버터는 상응하는 열에 대해 비트라인 blb가 아닌 비트라인 bl에 결합된다.
그래서, 단계 144에 이어, 각각의 데이터 워드에 대해, 비트라인 blb는 상응하는 서치 상태가 0인 모든 셀에 결합될 것이다. 이러한 셀 모두가 실제 0 데이터 상태가 있다면, 이들은 blb 비트라인에 1을 출력할 것이고, 그래서 blb 비트라인은 1의 프리차지된 상태로 남게 될 것이다. 이러한 셀중 하나가 1이라면, 이들은 0을 blb 비트라인에 출력할 것이고 blb 비트라인은 방전될 것이다.
마찬가지로, 단계 144에 이어, 각각의 데이터 워드에 대해, 비트라인 bl은 상응하는 서치 상태가 1인 모든 셀에 결합될 것이다. 이러한 셀 모두가 실제로 1 데이터 상태에 있다면, 이들은 1을 bl 비트라인에 출력할 것이고, 그래서 bl 비트라인은 이러한 셀중 하나가 0 데이터 상태에 있는 경우에 하이로 남을 것이고, 이들 셀은 0을 bl 비트라인에 출력하여 bl 비트라인은 방전될 것이다.
따라서, BCAM 모드에서, 열에 대한 비트라인 bl, blb의 어느 것도 방전되지 않는다면, 이것은 '0' 서치 상태에 상응하는 행의 모든 셀이 이러한 서치 상태에 일치하고 '1' 서치 상태에 상응하는 행의 모든 셀이 이러한 서치 상태에 일치한다는 것을 나타낸다. 즉, 전체 데이터 워드는 서치 키에 일치한다. 하나 또는 양측 모두의 비트라인 bl, blb가 방전되면, 적어도 하나의 셀이 상응하는 서치 상태과 상이한 데이터 상태를 갖고 있기 때문에 일치는 없다. 그래서, 단계 148에서, 감지 증폭기는 선택된 열에 대한 bl, blb 비트라인이 모두 1인지 여부를 검출한다. 모두 1이라면, 단계 150에서 해당 열에 대한 일치 조건이 존재하는지 판정하고, 하나 또는 양측 모든 비트라인 bl, blb가 0이라면, 아무런 일치 조건이 존재하지 않는다.
예를 들어, 도 5에서 행 0에 대한 서치 상태는 '1'이고 행 m에 대한 서치 상태는 '0'이다. 행 0에서, 양측 행의 셀은 해당 행에 대한 서치 상태와 일치하여서, 비트라인 bl0, blb0 모두는 하이로 머물고 일치 표시가 출력된다. 이와 대조되어, 행 n에 대해, 행 m의 셀은 '1' 데이터 상태에 있고, 이러한 상태는 이러한 행에 인가된 '0' 서치 상태와 일치하지 않아, 열 n에 대한 blb_n 비트라인은 0으로 떨어져 불일치가 출력된다.
이러한 방식으로, 6T SRAM 셀의 어레이는 서치 상태에 기초한 제어 신호를 각각의 행에 상응하는 워드라인의 쌍에 인가함으로써, 그리고 각각의 열에 대한 비트라인 bl, blb의 단일 종단 감지함으로써 BCAM으로서 동작될 수 있다.
BCAM 서치 동작 동안 판독 교란에 대한 보호를 위해, 워드라인 전압이 감소되거나 셀로의 공급 전압이 증가되어 워드라인 전압이 서치되는 비트셀에 대한 공급 전압 보다 낮다. 예를 들어, 워드라인 전압은 0.5볼트이고 셀에 대한 공급 전압은 0.9V일 수 있다. 보다 일반적으로, 공급 전압이 대략 Vdd이라면, 워드라인 전압은 대략 Vdd/2일 수 있다(정확히 공급 전압의 절반일 필요는 없다). 이것은 동일한 열의 하나의 셀과 다른 셀이 동일한 비트라인에 접속될 때 열의 하나의 셀이 동일한 열의 다른 셀의 비트 상태의 플립을 유발하는 것을 방지한다.
도 9는 이진 내용 주소화 모드일 때 저장 장치(100)에 데이터 워드를 기록하는 예를 도시하고 있다. 데이터 워드는 동일한 열의 저장 셀에 열 단위로 기록된다. 어드레스 디코더(112)는 기록 주소에 기초하여 기록되는 하나의 열을 선택한다. 이러한 기록은 2개의 사이클로 실행되는데, 하나는 1의 비트 상태를 저장할 셀을 기록하기 위한 것이고 다른 하나는 0의 비트 상태를 저장할 셀을 기록하기 위한 것이다. 어느 사이클이 먼저 실행되는지는 중요하지 않다. 예를 들어, 도 10은 제1 기록 사이클이 '1'을 기록하고 제2 기록 사이클이 '0'을 기록하는 BCAM 모드에서 기록 연산을 실행하는 방법을 도시하고 있지만, 이것은 다른 방식으로 순환될 수도 있다.
제1 기록 사이클은 단계 160, 162, 164를 포함하고 있다. 단계 160에서, 선택된 열 x에 대한 비트라인 blbx는 0으로 구동되고 다른 비트라인 blx는 1로 구동된다. 단계 162에서 양측 워드라인 wll, wlr은 상응하는 데이터 상태가 1이 되는 행에 대해 어서트된다(=1). 이것은 이러한 행에 대한 액세스 트랜지스터(108-0, 108-1)를 턴온하여 이러한 행의 셀은 인버터(106-0)가 1을 출력하고 인버터(106-1)가 0을 출력하는 '1' 상태에 놓인다. 다른 행에 대한 워드라인 wll, wlr은 0으로 남아서, 이러한 행의 셀은 기록되지 않는다. 그다음, 단계 164에서 이러한 워드라인은 디어서트된다. 제2 기록 사이클은 단계 166에서 비트라인 blbx가 1이고 비트라인 blx가 0이고(단계 160로부터 반대 방식 순환), 단계 168에서 좌우 워드라인 wll, wlr이 상응하는 비트가 0인 행에 대해 어서트되어, 0 상태를 이러한 행에 기록함으로써, 다른 행의 1이 비활성 상태로 남는다는 점을 제외하면 단계 160, 162, 164와 유사한 단계 166, 168, 170을 포함하고 있다.
기록되고 있지 않는 다른 열의 셀의 비트 상태의 교란을 피하기 위해, 기록되는 열에 대한 워드라인 전압 및 공급 전압은 다른 열에 대한 공급 전압 보다 낮다. 예를 들어, 도 9에서 열 0(기록 열)으로의 워드라인 전압 및 공급 전압은 0.5V이고 행 n으로의 공급 전압은 0.9V이다.
도 11은 3진 내용 주소화(TCAM) 모드에서 저장 장치(100)를 동작시키는 예를 도시하고 있다. TCAM 모드에서, 각각의 데이터 워드는 메모리 어레이의 한 쌍의 인접한 열을 가로질러 열 단위로 저장되고 데이터 워드의 각각의 데이터 상태는 2개의 인접한 열의 동일한 행의 2개의 비트 셀에 저장된 비트 상태를 사용하여 표현된다. 이로 인해 각각의 데이터 사태가 아래의 표 1에 도시된 바와 같이 3개의 가능한 상태중 하나를 나타낼 수 있다.
데이터 상태 | 좌측 셀 상태(열 x) | 우측 셀 상태(열 x + 1) |
0 | 0 | 0 |
1 | 1 | 1 |
X | 0 | 1 |
예비 | 1 | 0 |
(인버터(106-0)에 의해 표현된 0의 셀 상태는 0을 출력하고 인버터(106-1)는 1을 출력하고, 인버터(106-0)에 의해 표현된 1의 셀 상태는 1을 출력하고 인버터(106-1)는 0을 출력한다).
마찬자기로, 서치 키의 서치 상태는 다음의 표 2에 따라 상응하는 행에 대해 어서트되는 좌우 워드라인에 의해 표시된 바와 같이 3개의 상이한 상태일 수 있다.
서치 상태 | 좌측 워드 라인 wll | 우측 워드 라인 wlr |
0 | 1 | 0 |
1 | 0 | 1 |
X | 0 | 0 |
예비 | 1 | 1 |
표 1 및 표 2에 도시된 X 상태는 임의의 상태에 일치하는 것으로 간주되는 마스크 상태를 나타낸다. 그래서, TCAM 모드에서, 서치 상태가 데이터 상태와 일치하는지 여부는 다음의 표 3에 도시된 규칙에 기초한다.
서치 상태 | 데이터 상태 | 일치? |
0 | 0 | 1 |
1 | 1 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
X | 임의의 상태 | 1 |
임의의 상태 | X | 1 |
그래서, TCAM 모드에서, 서치/데이터 상태중 하나가 0이고 다른 것이 1이라면 불일치만이 존재한다. 서치/데이터 상태의 모든 다른 조합은 일치하는 것으로 간주된다.
TCAM 모드에서의 서치 연산에 있어서, 한 쌍의 인접한 열의 감지 증폭기(114)는 하나의 열의 bl 비트라인을 감지하는 하나의 감지 증폭기(114)와 다른 열의 blb 비트라인을 감지하는 다른 감지 증폭기(114)와 함께 동작한다. 다른 비트라인은 TCAM 모드에서의 서치 연산에 필요하지 않다. 도 11의 예에서, 한 쌍의 열의 외부 비트라인은 좌측 열에 대한 감지 증폭기가 blb0 비트라인을 감지하고 우측 열에 대한 감지 증폭기가 bl1 비트라인을 감지하도록 사용된다. 그러나, 유사한 결과가 bl0 및 blb1 비트라인을 대신 감지함으로써 달성될 수도 있다는 것을 이해할 것이다. 감지 증폭기는 TCAM 모드 동안 단일 종단 모드에서 동작한다.
판독 프로토콜은 BCAM 모드에 대해 사용된 것과 유사하다. 이러한 비트라인은 프리차지되고, 좌우 워드라인은 상기 표 2에 따른 서치 상태에 따른 신호에 의해 어서트된다. 그다음, 한 쌍의 열에 대한 비트라인 blb0, bl1의 신호는 해당 열에 대해 일치가 존재하는지 여부를 나타낸다.
도 12는 TCAM 모드에서 서치 연산을 실행하는 방법을 도시하고 있다. 단계 180에서 감지 증폭기가 단일 종단 감지 모드에 놓인다. 단계 182에서, 한 쌍의 인접한 열에 대한 비트라인 blbx, blx+1은 서치되는 각각의 데이터 워드에 대해 프리차지된다(blx 및 blbx+1은 프리차지될 필요가 없다는 것을 유념해야 한다). 이것은 여러 개의 데이터 워드를 동시에 서치하기 위해 다수의 쌍의 열에 대해 실행될 수 있다. 단계 184에서 각각의 행 y에 대한 서치 상태가 판정된다. 서치 상태가 1인 행에 대해, 단계 186에서 우측 워드라인 wlry는 디어서트되고 좌측 워드라인 wlly는 디어서트된다. 서치 상태가 0인 행에 대해, 단계 188에서 이러한 행에 대한 좌측 워드라인 wlly가 어서트되고 우측 워드라인 wlry가 디어서트된다. 서치 상태가 마스크 상태 X인 행에 대해, 단계 190에서 워드라인 wlly, wlry 모두가 디어서트된다. 단계 184-190는 표 2에 도시된 서치 상태에 상응한다.
이 시점에서, 한 쌍의 열에 의해 표현된 각각의 데이터 워드에 대해, 비트라인 blbx는 상응하는 서치 상태가 0인 임의의 행의 좌측 셀에 결합될 것이다. 이러한 모든 행이 0 데이터 상태 또는 X 데이터 상태를 나타낸다면, 좌측 셀은 0 비트 상태가 될 것이고(표 1 참조), 1을 blbx 비트라인에 출력하여, blbx는 1의 프리차지된 상태로 남게 될 것이다. 임의의 행이 1 데이터 상태를 나타내면, 자측 셀은 1의 비트 상태를 나타낼 것이고 0을 blbx 비트라인에 출력하여 blbx는 방전될 것이다.
마찬가지로, 비트라인 blx+1은 상응하는 서치 상태가 1인 임의의 행의 우측 셀에 결합될 것이다. 이러한 모든 셀이 실제 1 데이터 상태 또는 X 데이터 상태에 있다면, 우측 셀은 1의 비트 상태를 나타낼 것이고(표 1 참조), 1을 bl 비트라인에 출력하여, bl 비트라인은 하이로 남게 될 것이다. 이러한 셀중 하나가 0 데이터 상태에 있다면, 이들 셀은 0을 bl 비트라인에 출력하여, bl 비트라인이 방전될 것이다.
서치 상태가 X인 임의의 행에 대해, 양측 워드라인이 디어서트되어, 이러한 행의 셀은 비트라인 blbx, blx+1중 하나에 결합되지 않는다. 따라서, 서치 상태가 X인 셀은 비트라인 blbx, blx+1의 신호에 영향을 주지 않는다.
그래서, 비트라인 blbx, blx+1의 신호는 서치 상태가 0이고 데이터 상태가 1인 행이 존재하는 경우에 방전될 것이고, blx+1는 서치 상태가 1이고 데이터 상태가 0인 행이 존재하는 경우에 방전될 것이다. 모든 다른 경우에서, 비트라인 blbx, blx+1은 하이로 남을 것이다. 그래서, 상기 표 3에 따른 비교 결과는 비트라인 blbx, blx+1의 신호로부터 판정될 수 있다. 단계 191에서 감지 증폭기(114)는 비트라인 blbx, blx+1의 신호 레벨을 감지한다. 단계 192에서 양측 신호 레벨이 1인지 여부가 판정된다. 그러하다면, 단계 194에서 일치 조건이 열 x, x+1에 의해 표현된 데이터 워드에 대해 판정되고, 신호중 하나가 0이라면 단계 196에서 불일치가 검출된다.
도 13은 TCAM 모드에서 기록을 실행하는 방법을 도시하고 있다. BCAM 모드에서와 같이, 기록은 다수의 사이클로 실행되지만, 이번에는 임의의 순서로 실행될 수 있는, 0,1 및 X 상태에 각각 상응하는 3개의 사이클이 존재한다. 데이터 워드는 한 쌍의 인접한 열 x, x+1에 기록된다. 제1 기록 사이클은 단계 200, 202, 204를 포함한다. 단계 200에서, 각각의 열의 blb 비트라인은 0으로 구동되고 각각의 열의 bl 비트라인은 1로 구동된다. 단계 202에서 좌우 워드라인 wll, wlr은 임의의 행이 1의 데이터 상태로 기록되도록 어서트된다. 이것은 '1' 데이터 상태를 해당 행의 한 쌍의 인접한 셀에 기록하도록(이러한 쌍의 양측 셀은 '1' 비트 상태에 있다) 이러한 행에 대한 액세스 트랜지스터(108-0, 108-1)를 턴온한다. 단계 204에서 모든 행에 대한 워드라인이 디어서트된다.
0 데이터 상태를 기록하기 위한 제2 기록 사이클에서, 단계 206, 208, 210은 단계 206에서 열 x, x+1에 대한 blb 비트라인이 1이고 bl 비트라인이 0이고, 단계 208에서 이러한 워드라인이 어서트되어 행이 0 데이터 상태로 기록되는 것을 제외하면 단계 200, 202, 204와 동일하다. X 데이터 상태를 기록하기 위한 제3 기록 사이클에서, 단계 212, 214, 216은 단계 212가 비트라인 blbx, blx+1을 1로 구동하고 비트라인 blx, blbx+1을 0으로 구동하고(표 1에 도시된 X 상태에 상응한다) 단계 214가 X 상태로 기록되는 행에 대한 좌우 워드라인을 어서트한다는 점을 제외하면 제1/제2 사이클에 대한 것과 동일하다.
BCAM 모드에서와 같이, 서치/기록 연산 동안 하나의 비트셀이 다른 비트셀의 상태를 변하도록 하는 것을 방지하기 위해 교란 회피 기술이 사용될 수 있다. 다시, 워드라인 전압은 서치 연산 동안 공급 전압 보다 낮을 수 있고, 기록되는 열로의 워드라인 전압 및공급 전압은 기록 연산 동안 기록되지 않는 열로의 공급 전압 보다 낮을 수 있다.
상기 예가 BCAM에 대한 단일 열 또는 TCAM에 대한 한 쌍의 열의 셀을 사용하여 각각의 데이터 워드를 나타내지만, 각각의 데이터 워드가 하나의 열에 수용될 수 있는 것 보다 큰 수의 데이터 상태를 요청하는 경우에, 데이터 워드는 상이한 뱅크에서 여러 개의 열 또는 열의 쌍에 분배될 수도 있다. 이러한 뱅크에 이러한 열을 제공함으로써, 상이한 뱅크의 상응하는 행에 대한 워드라인에 대한 독립적인 제어가 가능하여, 동일한 데이터 워드의 각각의 열은 병렬로 서치될 수 있다. 예를 들어, 감지 증폭기는 각각의 열 또는 열의 상에 의해 표현된 부분 데이터 워드에 대한 부분 일치 결과를 감지할 수 있고, 그다음, 이러한 부분 일치 결과는 전체 데이터 워드에 대한 일치 결과를 생성하도록 결합될 수 있다.
대안으로, 이러한 데이터 워드는 동일한 뱅크에서 여려 개의 열 또는 열의 쌍들에 분배될 수 있고, 이러한 경우에, 서치 연산은 다수의 사이클을 필요로 할 수 있어서, 상이한 서치 상태가 전체 데이터 워드의 각각의 부분 데이터 워드에 대한 워드라인에 연속 적용될 수 있고, 이러한 서치 결과는 여러 개의 사이클에서 누적될 수도 있다.
어느 쪽이든, 다수의 열에 데이터 워드를 분할하는 것이 유용할 수 있는데, 그 이유는 하나의 열의 셀의 수가 너무 커지면(예를 들어, 128개의 비트셀 보다 크면), 각각의 셀을 통한 누설에 의해, 이러한 열의 모든 셀이 상응하는 서치 상태에 일치한다 할지라도 비트라인의 신호가 방전될 수 있어, 신뢰도에 영향을 줄 수 있기 때문이다. 이것은 보다 짧은 열을 제공하고 다수의 열 또는 열의 쌍들에 보다 큰 데이터 워드를 나타냄으로써 처리할 수 있다.
상술된 데이터 상태 및 서치 상태를 나타내는데 사용되는 특정 비트 상태 및 제어 신호는 단지 예이고, BCAM 또는 TCAM 모드의 다른 실시예가 데이터/서치 상태를 나타내기 위해 다른 조합의 신호 또는 비트 상태를 사용할 수 있다는 것을 이해할 것이다.
요컨대, 상술된 기술에 의해 6T SRAM 셀의 어레이는 BCAM 또는 TCAM으로서 동작하도록 재구성될 수 있다. 제2 워드라인이 셀의 각각의 행에 대해 제공되지만, 이러한 추가는 워드라인이 보통 집적 회로의 상층에 제공되고 각각의 메모리 셀의 트랜지스터를 제공하는 집적 회로의 하층을 변경하지 않기 때문에 메모리 장치의 집적 회로 레이아웃을 상당히 변경하지 않는다. 이것은 종래의 푸시-룰 설계 기술이 여전히 면적이 효율이 좋은 비트셀 레이아웃을 제공하는데 사용될 수 있음을 의미한다.
일부 메모리 인스턴스가 도 1 내지 도 4에 대하여 설명된 인-메모리 계산 기술 및 도 5 내지 도 13에 대하여 설명된 재구성가능한 SRAM/BCAM/TCAM 기술 모두를 사용할 수 있다는 것을 이해할 것이다.
도 14는 상술된 기술을 지원하는 메모리 인스턴스가 메모리 구조(310)를 참조하여 메모리 컴파일러(300)로부터 생성될 수 있는 방법을 개략적으로 설명하고 있다. 메모리 구조(310)는 회로 소자의 정의 및 이러한 회로 소자를 조합하기 위한 데이터 정의 규칙을 규정하여 메모리 인스턴스를 생성한다. 메모리 인스턴스에 대한 특정 필요조건이 그래피컬 유저 인터페이스(GUI)를 통해 입력 파라미터로서 메모리 컴파일러(30)에 입력된다. 당업자가 이해하는 바와 같이, 이러한 입력 파라미터는 예를 들어, 메모리 어레이의 크기의 규정, 메모리 어레이의 멀티플렉싱 배치, 파워 게이팅 특징과 같은 다양한 옵션 특징의 선택, 지원되는 빌트-인-셀프-테스트(BIST) 모드와 같은, 희망의 메모리 인스턴스의 다양한 특징을 규정할 수 있다. 그다음, 메모리 컴파일러(300)는 입력 파라미터 및 메모리 구조(310)에 기초하여 희망의 메모리 인스턴스를 생성한다. 하나의 실시예에 따라, 메모리 컴파일러는 도 5 내지 도 13의 예의 셀의 행 당 2개의 워드라인을 제공하는 것은 물론, 상술된 바와 같이 감지 증폭기, 워드라인 구동기 및 어드레스 디코더를 구현하는 컴포넌트를 포함하고 있다.
도 15는 메모리 인스턴스를 생성하기 위해 상기 메모리 컴파일레이션 동작을 구현하도록 사용될 수 있는 타입의 범용 컴퓨터(400)를 개략적으로 도시하고 있다. 범용 컴퓨터(400)는 모두 공통 버스(422)를 통해 접속된 중앙 제어 장치(402), 랜덤 액세스 메모리(404), 읽기 전용 메모리(406), 네트워크 인터페이스 카드(408), 하드 디스크 드라이브(410), 디스플레이 드라이버(412)와 모니터(414), 및 키보드(418)와 마우스(420)를 구비한 사용자 입출력 회로(416)를 포함하고 있다. 동작시에 중앙 처리 장치(402)는 랜덤 액세스 메모리(404), 읽기 전용 메모리(406) 및 하드 디스크 드라이브(410)중 하나 이상에서 저장되거나 네트워크 인터페이스 카드(408)를 통해 동적으로 다운로드될 수 있는 컴퓨터 프로그램 명령어를 실행할 것이다. 실행된 처리의 결과는 디스플레이 드라이버(412) 및 모니터(414)를 통해 사용자에게 표시될 수 있다. 범용 컴퓨터(400)의 동작의 제어를 위한 사용자 입력은 키보드(418) 또는 마우스(420)로부터 사용자 입출력 회로(416)를 통해 수신될 수 있다(그래서 예를 들어, 희망의 메모리 인스턴스의 특정 특성을 결정하는데 사용되는 입력 파라미터가 이러한 메커니즘을 통해 입력될 수 있다). 이러한 컴퓨터 프로그램이 다양한 상이한 컴퓨터 언어로 기록될 수도 있다는 것을 이해할 것이다. 이러한 컴퓨터 프로그램은 기록 매체에 저장되고 분배되거나 범용 컴퓨터(400)에 동적으로 다운로드될 수 있다. 적절한 컴퓨터 프로그램의 제어하에 동작될 때, 범용 컴퓨터(400)는 상술된 메모리 컴파일러 동작을 실행할 수 있고, 상술된 메모리 컴파일러 동작을 실행하기 위하 장치를 형성하는 것으로 생각될 수 있다. 범용 컴퓨터(400)의 구조는 상당히 다양할 수도 있고 도 15는 하나의 예일 뿐이다.
본 기술의 일부 특정 실시예가 상술되어 있다. 그러나, 이러한 실시예의 정확한 세부사항은 본질적은 아니다. 본 기술은 다른 방식으로 구현될 수도 있다는 것을 이해할 것이다.
하나의 예에서, 저장 장치,
데이터 값을 저장하는 복수의 저장 셀;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합시키는 제어 회로; 및
상기 적어도 2개의 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 감지하는 감지 회로를 포함할 수 있다.
본 발명자는, 적어도 2개의 저장 셀을 공통 신호 라인에 동시에 결합함으로써, 공통 신호 라인의 신호 레벨로부터, 이러한 셀에 저장된 데이터 값에 적용된 논리 연산의 결과를 나타내는 값을 감지하는 것이 가능하다는 것을 인식하였다. 이것은 이러한 논리 연산의 결과는 각각의 데이터 값을 판독하고 이러한 판독된 데이터 값을, 논리 연산의 결과를 평가할 처리 회로에 다시 되전송하도록 2개 이상의 판독 액세스를 실행해야 했던 이전 기술 보다 빨리 취득될 수 있다는 것을 의미한다. 저장 장치에서의 논리 연산의 결과를 계산함으로써, 단일 액세스가 논리 결과를 얻기 위해 실행될 수 있어, 적어도 하나의 데이터 액세스를 절감하여 성능을 향상시킬 수 있다. 이러한 성능 향상은 특히 2개 보다 많은 입력 오러랜드에 의한 상위 근(radix) 연산에 중요할 것이다. 또한, 처리 회로에서 저장 장치의 논리 연산의 결과를 계산함으로써, 처리 회로는 자유로워 다른 연산을 실행할 수 있어 추가 성능 향상을 얻을 수 있다.
이러한 저장 장치는 데이터 처리 장치에 제공된 임의의 저장 장치일 수도 있다. 예를 들어, 저장 장치는 메모리, 캐시 또는 레지스터 뱅크를 포함할 수 있다. 이러한 저장 셀은 각각의 저장 셀이 한 쌍의 비트라인을 갖는 워드라인의 교차점에서 있는 상태로 행 및 열로 배열될 수 있다. 일반적으로 (집적 회로 내의 이러한 저장 셀의 물리적 위치에 관계없이) 저장 셀의 행은 동일한 워드라인을 공유하는 저장 셀의 그룹으로 간주되고 저장 셀의 열은 동일한 비트라인을 공유하는 저장 셀의 그룹으로 간주될 수 있다.
논리 연산을 실행할 때 적어도 2개의 저장 셀이 결합되는 공통 신호 라인은 저장 장치 내의 임의의 신호 라인일 수 있다. 비트라인과 별개로, 논리 연산의 결과를 출력할 목적을 위해 전용 신호 라인을 제공하는 것이 가능하다. 예를 들어, 각각의 저장 셀에는 공통 출력 라인에 저장 셀을 선택적으로 결합하기 위해 추가 제어 트랜지스터가 제공될 수도 있다. 이러한 방법은 상이한 열의 셀에 저장된 데이터 값에 실행되는 논리 연산을 지원하는 것이 바람직한 경우에 유용할 수 있다.
그러나, 에어리어 오버헤드는 비트라인을 공통 신호 라인으로서 재사용함으로써 낮아질 수 있다. 그래서, 논리 연산이 다수의 행의 셀에 워드라인을 어서트하고 선택 열의 비트라인의 하나 또는 모두의 신호 레벨을 감지함으로써 동일한 열의 2개 이상의 셀에 적용될 수 있다. 이러한 방식에 의해, 정규 판독/기록 연산에 대해 이미 제공된 것 이외에 추가 제어 트랜지스터 또는 신호 라인이 필요하지 않다. 이것은 논리 연산에서 결합될 수 있는 비트 값을 갖는 셀을 동일한 열의 셀로 제한하지만, 논리 연산의 비교적 공통적인 사용은 2개 이상의 데이터 워드에 비트 단위 논리 연산을 실행하는 것이고, 그 결과의 각각의 비트는 각각의 데이터 워드의 상응하는 위치에서 비트에 논리 연산을 적용함으로써 생성된다. 데이터 워드가 동일한 행의 셀에서 행 단위로 저장된다면, 각각의 결과 비트를 생성하도록 결합되는 비트는 동일한 열의 비트일 수 있어서, 실제로 논리 연산을 동일한 열에 저장된 비트 값으로 제한하는 것은 자주 문제가 되지 않는다. 조합되는 상이한 열에서 비트를 조합하는 논리 연산이 요구되는 드문 경우에, 비트 값은 여전히 판독 연산에 의해 판독되고 처리 회로에 전송되어 논리 연산을 실행할 수도 있다.
논리 연산을 지원하기 위해, 감지 회로에 한 쌍의 비트라인의 적어도 하나의 절대 신호 레벨을 감지하기 위한 단일 종단 감지 모드가 제공될 수 있다. 단일 종단 감지 모드에서 항상 동작하는 감지 회로를 제공하는 것이 가능하지만, 판독 성능을 향상시키기 위해, 차동 감지 모드가 단일 감지 모드 보다 보통 빠르기 때문에 한 쌍의 비트라인의 신호 레벨 사이의 차이를 감지하기 위한 차동 감지 모드 역시 제공하는 것이 도움이 된다. 그래서, 감지 회로(예를 들어, 감지 증폭기)는 논리 연산을 실행할 때 단일 종단 감지 모드를 선택하거나 판독 연산을 실행할 때 차동 감지 모드를 선택하도록 구성될 수 있다.
하나의 예에서, 이러한 감지 회로는 각각 제1 인버터 및 제2 인버터를 갖는 2개 쌍의 교차 결합 인버터를 가질 수 있다. 차동 감지 모드에서, 교차 결합 인버터의 각각의 쌍은 제1 비트라인에 결합된 제1 인버터의 입력부 및 제2 비트라인에 결합된 제2 인버터의 입력를 가질 수 있다. 그래서, 차동 감지 모드에서 교차 결합 인버터의 각각의 쌍은 한 쌍의 비트라인중 하나의 신호 레벨의 변화에 응답하고, 이러한 비트라인중 하나가 상태를 변경할 때 각각의 쌍의 교차 결합 인버터는 이러한 변화를 강화하여 해당 비트라인을 반대 신호 레벨로 보다 신속하게 잡아당긴다. 이것은 판독 연산의 속도를 높여 보다 빠른 판독 사이클을 가능하게 하고, 그래서 성능을 향상시킬 수 있다. 단일 종단 감지 모드에서, 한 쌍의 교차 결합 인버터는 제1 비트라인에 결합된 제1 인버터의 입력부 및 기준 신호 레벨에 결합된 제2 인버터의 입력부를 가질 수 있고, 다른 쌍은 기준 신호 레벨에 결합된 제1 인버터의 입력부 및 제2 비트라인에 결합된 제2 인버터의 입력부를 가질 수 있다. 그래서, 단일 종단 감지 모드에서, 교차 결합 인버터의 각각의 쌍은 상이한 비트라인의 신호 레벨을 기준 신호 레벨과 비교함으로써 독립적으로 감지한다. 이러한 감지 회로의 현재 모드에 관계없이, 각각의 비트라인의 상태는 이러한 한 쌍의 교차 결합 인버터의 상태로부터 결정될 수 있다.
상술된 바와 같이 저장 장치에 논리 연산의 결과를 생성하기 위해, 제어 회로가 적어도 2개의 저장 셀을 공통 신호 라인에 동시에 결합할 수 있도록 하는 것은 반직관적인 것으로 보일 수 있다. 이것은 2개 이상의 셀이 공통 신호 라인에 결합될 때 하나의 저장 셀의 상태에 의해 다른 셀의 상태가 교란될 수 있는 가능성이 있기 때문에 바람직하지 않다고 예상할 수도 있다. 그러나, 적어도 2개의 셀의 데이터 값을 교란으로부터 보호하기 위한 보호 회로를 제공함으로써, 이러한 문제는 방지될 수 있다. 예를 들어, 보호 회로는 임의의 판독 교란 회피 기술을 사용하여 구현될 수 있다. 예를 들어, 논리 연산 동안 워드라인을 어서트할 때, 워드라인의 전압이 적어도 2개의 저장 셀에 디한 공급 전압 보다 낮을 수 있다. 이것은 워드라인 전압을 낮춤으로써 또는 저장 셀에 대한 공급 전압을 상승시킴으로써 얻을 수 있다. 워드라인의 전압 보다 높은 공급 전압을 제공함으로써, 셀에 대한 액세스 트랜지스터는 보다 약하게 턴온되어 상태를 저장 셀이 상태를 변경하는 위험을 감소시킬 것이다. 예를 들어, 보호 회로는 기록 연산 동안 보다 논리 연산 동안 낮도록 워드라인의 전압 레벨을 제어하는 워드라인 구동기, 또는 기록 연산에 사용되는 것 보다 낮은 공급 전압을 논리 연산 동안 제공하는 전원 내의 회로, 또는 적절하게 워드라인 전압을 낮추거나 공급 전압을 조정하는 저장 셀 자체 내의 트랜지스터 또는 다른 장치의 일부를 포함할 수 있다.
상술된 기술은 광범위한 논리 연산, 예를 들어, AND, NAND, NOR, OR, XOR 또는 XNOR중 임의의 하나 이상을 구현하도록 사용될 수 있다. 이러한 모든 연산을 제공할 필요는 없다. NAND, OR, 및 XNOR 연산은 AND, NOR 및 XOR 연산의 결과를 각각 반전시킴으로써 구현될 수 있다. 반전 기능이 제공되지 않는다면, NAND, OR 및 XNOR 연산은 지원될 필요가 없다.
예를 들어, AND 또는 NAND 연산을 실행하기 위해, 비트라인을 프리차지한 후에, 하나의 열의 2개 이상의 셀은 해당 열에 대한 한 쌍의 비트라인에 동시에 결합될 수 있고, 감지 회로는 이러한 쌍의 비트라인의 제1 비트라인의 신호 레벨을 감지할 수 있다. 그다음, AND 또는 NAND 연산의 결과는 제1 비트라인의 신호 레벨이 0 또는 1인지 여부에 의존할 수 있다. 마찬가지로, NOR 연산 또는 OR 연산에 있어서, 제2 비트라인(AND 또는 NAND 연산에 대해 감지되는 것의 반대 비트라인)의 신호 레벨이 감지될 수 있고, 논리 연산의 결과는 제2 비트라인의 신호 레벨이 0 또는 1인지 여부에 의존한다. XOR 또는 XNOR 연산에 있어서, 양측 비트라인의 신호 레벨이 감지될 수 있고, 그 결과는 양측 비트라인의 신호 레벨이 0인지 여부에 의존할 수 있다.
이러한 기술은 상이한 타입의 메모리에 대해 사용될 수 있다. 그러나, 이것은 특히, 데이터 값이 래치, 교차 결합 인버터의 쌍 또는 다른 쌍안정 소자의 상태에 의해 표현되는 SRAM(스태틱 램)에 유용하다. 상이한 수의 트랜지스터 또는 레이아웃의 셀을 포함하는 임의의 타입의 SRAM 셀이 사용될 수 있다. 그러나, 특히, 한 쌍의 교차 결합 인버터(4개의 트랜지스터) 및 워드라인 신호에 응답하여 인버터를 비트라인에 선택적으로 결합하기 위한 액세스 트랜지스터로서 동작하는 2개의 추가 트랜지스터를 포함하는 6T SRAM 셀을 사용하는 것이 면적 효율성이 좋을 수 있다.
다른 예에서, 저장 장치는,
데이터 값을 저장하기 위한 복수의 저장 셀 수단;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하기 위한 제어 수단; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용된 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 감지하기 위한 감지 수단을 포함하는 저장 장치를 포함할 수 있다.
다른 예에서, 방법은,
저장 장치의 적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하는 단계; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용된 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 감지하는 단계를 포함하는 방법을 포함할 수 있다.
데이터 처리 장치는 여기에 기술된 저장 장치를 포함할 수 있다.
다른 예에서, 컴퓨터 판독가능 저장 매체가 메모리 컴파일러 컴퓨터 프로그램과 연관된 메모리 구조로부터 메모리 장치의 인스턴스를 생성도록 컴퓨터를 제어하기 위한 메모리 컴파일러 컴퓨터 프로그램을 저장하고, 이러한 메모리 구조는 회로 소자의 감응도 및 이러한 회로 소자를 조합하기 위한 데이터 정의 규칙을 규정하여, 상기 생성된 인스턴스는 상술된 저장 장치를 포함하는 메모리 장치를 규정한다.
규정된 메모리 구조로부터 메모리 장치의 인스턴스를 자동 생성하기 위한 메모리 컴파일러가 제공될 수 있다. 이러한 구조는 생성된 메모리 인스턴스가 상술된 인-메모리 계산 기술을 지원하도록 될 수 있다. 예를 들어, 이러한 구조는 상술된 바와 같은 단일 종단 감지 모드를 지원하는 감지 증폭기, 2개 이상의 워드라인을 동시에 어서트하기 위한 워드라인 구동기, 또는 판독 교란을 피하기 위한 보호 회로의 규정을 포함할 수 있다. 이러한 메모리 컴파일러는 비임시 컴퓨터 저장 매체에 제공될 수 있다.
추가 예에서, 저장 장치는,
저장 셀의 어레이; 및
상기 저장 셀의 어레이의 저장 셀의 하나 이상의 행을 선택하기 위한 복수의 워드라인의 제어 신호를 제공하는 제어 회로를 포함하고,
상기 저장 장치는,
상기 제어 신호가 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하기 위해 상기 복수의 워드라인의 신호를 제어하는 판독 연산을 지원하는 논 내용 주소화 모드; 및
상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현되는 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하도록 상기 복수의 워드라인의 신호를 제어하는 서치 연산을 지원하는 내용 주소화 모드를 포함하는 복수의 모드를 갖고 있다.
이러한 예에서, 저장 장치에 주어진 적용 또는 장치에서 요구되는 대로 논 내용 주소화 모드 또는 내용 주소화 모드에서 동작될 수 있는 저장 셀의 어레이가 제공될 수 있다. 양측 모드는 논 내용 주소화 모드에서 판독되는 셀 또는 내용 주소화 모드에서 서치되는 셀을 선택하기 위해 동일한 워드라인을 사용할 수 있다. 이로 인해 내용 주소화 메모리(CAM)에 보다 낮은 에어리어 오버헤드가 제공될 수 있고, 일반 메모리 설계가 양측 논 CAM 및 CAM 목적을 위해 사용될 수 있어서, 특정 CAM 메모리 인스턴스를 개발하고 제조할 필요를 피할 수 있다.
일부 CAM 설계는 서치 연산을 실행하기 위해 추가 서치 및 매치 신호 라인을 사용한다. 상술된 타입의 저장 장치에 의해, 이것은 필요하지 않다. 비트라인 및 워드라인을 구비한 SRAM 셀의 어레이가 CAM 모드를 구현하는데 사용될 수 있다. 예를 들어, 6T SRAM 셀이 CAM에 보통 사용되는 9T/10T 보다 적은 수의 트랜지스터를 갖고 있을 뿐만 아니라 6T 셀이 상당한 면적 장점을 제공하는 푸시 룰 비트 셀 설계로부터 유리하므로, 면적을 크게 절감할 수 있는 단순한 6T SRAM 셀이 사용될 수 있다.
논 내용 주소화 모드에서, 각각의 셀이 특정 데이터 값을 저장할 수 있고 단일 행의 하나 이상의 셀로부터 데이터가 판독될 수 있다. 즉, 데이터 워드는 논 내용 주소화 모드에서 행 단위로 저장될 수 있다. 한편, 내용 주소화 모드에서, 각각의 데이터 워드가 저장 셀의 적어도 하나의 열의 다수의 행의 데이터 RQKT에 의해 표현될 수 있다. 그래서, 내용 주소화 모드에서 데이터 워드가 저장 장치에 열 단위로 저장될 수 있다.
복수의 비트라인을 통해 저장 셀의 각각의 열로부터 신호를 감지하기 위한 감지 회로가 제공될 수 있다. 내용 주소화 모드에 있어서, 감지 회로는 하나 이상의 비트라인의 절대 신호 레벨을 감지하기 위해 단일 종단 감지 모드에서 동작할 수 있다. 이로 인해 서치 연산의 결과가 각각의 비트라인의 독립적으로 감지된 레벨로부터 판독될 수 있다. 논 내용 주소화 모드에 있어서, 감지 회로의 단일 종단 감지 모드를 사용하여 이것을 구현하는 것이 가능하지만, 차동 감지 모드가 보다 빨라 단일 종단 및 차동 감지 모드 양측을 지원하는 구성가능한 설계를 감지 회로에 제공하는데 유용할 수 있다. 예를 들어, 상술된 2개의 쌍의 교차 결합 인버터를 갖는 감지 증폭기가 사용될 수 있다.
셀의 각각의 행에 제1 워드라인 및 제2 워드라인이 제공될 수 있다. 그래서, 드물게 행 당 2개의 워드라인이 존재하지만, 내용 주소화 모드를 지원하는데 유용하다. 저장 셀의 각각의 열은 제1 비트라인 및 제2 비트라인을 가질 수 있다. 각각의 저장 셀은 제1 워드라인의 제어 회로에 의해 제공된 신호에 응답하여 저장 셀을 상응하는 열의 제1 비트라인에 선택적으로 결합하기 위한 제1 제어 장치 및, 제2 워드라인의 신호에 응답하여 저장 셀을 제2 비트라인에 선택적으로 결합하기 위한 제2 제어 장치를 가질 수 있다. 그래서, 제1 및 제2 워드라인은 저장 셀이 각각 제1 비트라인 및 제2 비트라인에 각각에 접속될 지를 독립적으로 제어할 수 있다. 이러한 저장 셀을 하나의 비트라인에 결합하고 다른 비트라인에 결합하지 않는 기능은 내용 주소화 모드에 유용한데, 그 이유는 이로 인해 서치 키의 서치 상태에 기초하여 어느 셀이 제1 비트라인 및 제2 비트라인에 결합될 지를 표적 선택할 수 있기 때문이다. 한편, 논 내용 주소화 모드에서의 판독 연산에서, 양측 제1 워드라인 및 제2 워드라인이 판독되는 선택된 저장 셀을 포함하는 저장 셀의 행에 대해 어서트될 수 있어서, 선택된 저장 셀이 양측 비트라인에 결합된다.
서치 연산을 실행하기 위해, 서치 상태의 스트링을 포함하는 서치 키가 입력될 수 있다. 서치되는 각각의 데이터 워드는 데이터 상태의 스트링을 포함한다. 비교를 실행할 때, 데이터 워드의 각각의 데이터 상태가 서치 키의 상응하는 서치 상태에 일치하는 일치 조건이 임의의 데이터 워드에 대해 결정될 수 있다. 예를 들어, 이것은 상술된 제1 및 제2 워드라인을 사용함으로써 구현될 수 있다. 저장 셀의 각각의 행은 서치 키의 서치 상태중 하나에 상응할 수 있다. 서치 연산 동안, 각각의 행에 대해 제어 회로는 서치 키의 상응하는 서치 데이터에 따라 선택되는 제1 워드라인 및 제2 워드라인에 신호를 제공할 수 있다. 그래서, 서치 상태에 따라, 셀의 상응하는 행은 (사용되는 특정 CAM 모드에 따라) 제1 비트라인 또는 제2 비트라인에 결합되거나 아무 비트라인에도 결합되지 않는다. 그다음, 각각의 비트라인에서 판독된 신호는 상응하는 서치 상태에 일치하기 위해 특정 상태에 있어야 하는 각각의 셀이 해당 상태에 실제로 있는지를 판정하는데 사용될 수 있고, 그다음, 전체 데이터 워드가 서치 키에 일치하는지 여부를 나타내는 일치 표시가 생성될 수 있다.
상이한 타입의 내용 주소화 모드가 저장 장치에 의해 지원될 수 있다. 일부 장치는 각각의 서치 상태 및 데이터 상태가 제1 상태 또는 제2 상태를 나타내는 이진 내용 주소화 모드를 지원할 수 있고, 데이터 상태는 양측이 제1 상태 및 제2 상태의 동일한 것을 나타낸다면 상응하는 서치 상태에 일치하는 것으로 간주된다. 이진 내용 주소화 모드에서, 각각의 데이터 상태는 단일 저장 셀에 저장된 데이터 값에 의해 표현될 수 있다. 어레이의 단일 열의 저장 셀의 데이터 값에 의해 데이터 워드가 표현될 수 있다. 대안으로, 데이터 워드가 단일 열에 저장될 수 있는 것 보다 많은 수의 비트를 요청하면, 데이터 워드는 다수의 열에 저장될 수 있다. 서치 연산을 실행하기 위해, 제1 및 제2 워드라인에, 상응하는 행에 대한 각각의 서치 상태가 제1 상태 또는 제2 상태에 있는지에 따라 제어 신호가 제공될 수 있다. 그다음, 선택된 열에 대한 제1 비트라인 및 제2 비트라인의 신호 레벨을 감지할 수 있고, 제1 및 제2 비트라인의 신호 레벨 모두 사전결정된 임계값을 초과하는 경우에 일치 표시를 출력할 수 있다. 실질적으로, 서치 상태에 일치하기 위해 제1 상태에 있어야 하는 열의 모든 셀이 하나의 비트라인에 접속될 수 있고, 서치 상태에 일치하기 위해 제2 상태에 있어야 하는 셀이 다른 비트라인에 접속될 수 있고, 양측 비트라인이 하이로 남은 경우 이것은 모든 셀이 일치하는 것을 나타낸다. 이러한 셀중 하나가 상응하는 서치 상태와 상이한 상태에 있는 경우에, 비트라인중 하나는 임계값 아래에 있을 것이고 비일치 표시가 이러한 데이터 워드에 대해 출력될 수 있다.
이러한 내용 주소화 모드는 또한 각각의 서치 상태 및 각각의 데이터 상태가 제1 상태, 제2 상태 및 마스크 상태중 하나를 나타내는 3진 내용 주소화 모드일 수도 있다. 데이터 상태는 데이터 상태가 제1 상태이고 서치 상태가 제2 상태인 경우 또는 데이터 상태가 제2 상태이고 서치 상태가 제1 상태인 경우 이외의 모든 상황에서 상응하는 서치 상태에 일치하는 것으로 간주될 수 있다. 서치 상태 또는 데이터 상태가 마스크 상태라면 서치 상태는 데이터 상태에 일치한다. 3진 내용 주소화 모드에 있어서, 각각의 데이터 상태는 2개의 인접한 열의 동일한 행의 저장 셀에 저장된 데이터 값에 의해 표현될 수 있다. 그래서, 데이터 워드는 2개 이상의 쌍의 열의 인접한 셀의 쌍들에 의해 표현되는 데이터 상태에 의해, 하나의 열에 행들이 존재하는 것 보다 많은 행들을 데이터 워드가 요청하는 경우에, 2개의 열의 다수의 행에서 데이터 상태를 포함할 수 있다. 이진 CAM 모드에 있어서, 3진 CAM 모드에서 제1 및 제2 워드라인의 신호는 다시, 해당 행에 대한 서치 상태가 제1 상태, 제2 상태 또는 마스크 상태인지 여부에 따라 어서트될 수 있다.
3진 내용 주소화 모드에서, 서치 연산의 결과를 검출하기 위해 모든 비트라인의 신호를 감지할 필요는 없다. 각각의 인접한 열의 쌍에 있어서, 일치 표시는 그 결과가, 이러한 비트라인 양측의 신호가 사전결정된 임계값을 초과하는지 여부에 따르고 있어 열중 하나의 열의 제1 비트라인 및 다른 열의 제2 비트라인으로부터 감지된 신호 레벨에 의존할 수 있다.
내용 주소화 모드에서, 기록 연산은 복수의 기록 사이클에서 실행될 수 있고, 각각의 기록 사이클은 데이터 상태중 하나에 상응하고 이러한 데이터 상태를 데이터 워드의 선택된 셀에 기록한다. 그래서, 각각의 기록 사이클에서, 현재 기록 사이클에 대해 데이터 상태가 기록될 저장 셀을 선택하기 위한 워드라인에 신호가 제공될 수 있다. 2진 내용 주소화 모드에 있어서, 제1 및 제2 상태 각각에 상응하는 2개의기록 사이클이 존재하고, 2진 모드에 있어서, 제1, 제2 및 마스크 상태에 상응하는 3개의 기록 사이클이 존재할 것이다.
서치 연산 동안 판독 교란을 방지하기 위해 보호 회로가 제공될 수 있다. 임의의 공지된 교란 회피 기술이 이를 위해 사용될 수 있다. 예를 들어, 서치 연산 동안, 워드라인의 전압은 (워드 라인 전압을 낮추거나 공급 전압을 높임으로써) 저장 셀에 대한 공급 전압 보다 낮을 수 있다. 기록 연산 동안, 기록되는 열의 워드라인의 전압 및 저장 셀로의 공급 전압은 기록되지 않는 다른 저장 셀에 대한 공급 전압 보다 낮은 전압을 가질 수 있다).
다시, 상술된 바와 같이, 메모리 장치의 인스턴스를 생성하기 위한 메모리 컴파일러가 제공될 수 있다. 이러한 메모리 컴파일러는 비임시 컴퓨터 저장 매체에 제공될 수 있다.
다른 예에서, 저장 장치는,
데이터 값을 저장하기 위한 저장 셀 수단의 어레이; 및
상기 어레이의 저장 셀 수단의 하나 이상의 행을 선택하기 위한 복수의 워드라인 수단의 제어 신호를 제공하기 위한 제어 수단을 포함하고,
상기 저장 장치는,
상기 제어 수단이 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하기 위해 상기 복수의 워드라인의 신호를 제어하는 판독 연산을 지원하는 논 내용 주소화 모드; 및
상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현된 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하도록 상기 제어 수단이 상기 복수의 워드라인의 신호를 제어하는 서치 연산을 지원하는 내용 주소화 모드를 포함하는 복수의 모드를 갖고 있다.
다른 예에서, 저장 셀의 어레이 및 상기 어레이의 저장 셀의 하나 이상의 행을 선택하기 위한 복수의 워드라인을 포함하는 저장 장치를 위한 방법이 제공되고, 상기 방법은,
상기 저장 장치의 논 내용 주소화 모드 및 내용 주소화 모드중 하나를 선택하는 단계;
논 내용 주소화 모드가 선택되면, 상기 복수의 워드라인의 신호가 상기 어레이의 선택된 저장 셀로부터 데이터 값의 판독을 트리거하도록 제어되는 판독 연산을 실행하는 단계; 및
내용 주소화 모드가 선택되면, 상기 복수의 워드라인의 신호가 상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현되는 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하도록 제어되는 서치 연산을 실행하는 단계를 포함한다.
다른 예에서, 저장 장치는 복수의 6T SRAM 저장 셀을 포함하고, 각각의 저장 셀은 제1 워드라인에 제공된 신호에 응답하여 상기 저장 셀을 제1 비트라인에 결합하는 제1 액세스 트랜지스터 및 상기 제1 워드라인과 상이한 제2 워드라인에 제공된 신호에 응답하여 상기 저장 셀을 제2 비트라인에 결합하는 제2 액세스 트랜지스터를 포함한다.
다른 예에서, 저장 장치는 6T SRAM 저장 셀의 어레이; 및 제어 회로가 상기 어레이의 선택된 저장 셀로부터 데이터 값의 판독을 트리거하는 신호를 제공하는 판독 연산을 지원하는 논 내용 주소화 모드, 및 상기 제어 회로가 상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 표현되는 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하는 신호를 제공하는 서치 연산을 지원하는 내용 주소화 모드를 갖는 제어 회로를 포함하고 있다.
본원에서, "하도록 구성된"은 장치의 요소가 규정된 연산을 수행할 수 있는 구성을 갖는 것을 의미하도록 사용되어 있다. 이러한 문맥에서, "구성" 수단은 하드웨어 또는 소프트웨어의 상호접속의 방식 또는 배치를 의미한다. 예를 들어, 이러한 장치는 규정된 연산을 제공하는 전용 하드웨어를 가질 수 있거나, 프로세서 또는 다른 처리 장치가 이러한 기능을 실행하도록 프로그램화될 수 있다. "하도록 구성된"은 장치 요소가 규정된 연산을 제어하기 위해 임의의 방식으로 변경될 필요가 있다는 것을 나타내는 것은 아니다.
조항
다음의 번호부여된 조항은 일부 다른 비제한된 배치예를 나타내고 있다.
(1) 저장 장치로서,
저장 셀의 어레이; 및
상기 어레이의 하나 이상의 행의 저장 셀을 선택하기 위한 복수의 워드라인에 제어 신호를 제공하는 제어 회로를 포함하고,
상기 저장 장치는,
상기 제어 회로가 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하는 상기 복수의 워드라인의 신호를 제어하는 판독 연산을 지원하는 논 내용 주소화 모드; 및
상기 제어 회로가 상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현되는 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하는 상기 복수의 워드라인의 신호를 제어하는 서치 연산을 지원하는 내용 주소화 모드를 포함하는 복수의 모드를 갖고 있는 저장 장치.
(2) 조항 (1)에 있어서, 상기 저장 셀은 SRAM 셀을 포함하는 저장 장치.
(3) 조항 (2)에 있어서, 상기 저장 셀은 6T SRAM 셀을 포함하는 저장 장치.
(4) 조항 (1) 내지 (3)에 있어서, 내용 주소화 모드에서, 각각의 데이터 워드가 적어도 하나의 열의 저장 셀의 다수의 행에 저장된 데이터 값에 의해 표현되는 저장 장치.
(5) 조항 (1) 내지 (4)에 있어서, 복수의 비트라인을 통해 각각의 열의 저장 셀로부터 신호를 감지하는 감지 회로를 포함하는 저장 장치.
(6) 조항 (5)에 있어서, 내용 주소화 모드에서, 감지 회로가 하나 이상의 비트라인의 절대 신호 레벨을 감지하기 위한 단일 종단 감지 모드에서 동작하는 저장 장치.
(7) 조항 (5) 및 (6)에 있어서, 논 내용 주소화 모드에서, 감지 회로가 선택된 열의 저장 셀에 상응하는 한 쌍의 비트라인의 신호 레벨 사이의 차이를 감지하는 차동 감지 모드에서 동작하는 저장 장치.
(8) 조항 (1) 내지 (7)에 있어서, 저장 셀의 각각의 행에 제1 워드라인 및 제2 워드라인이 제공되는 저장 장치.
(9) 조항 (8)에 있어서, 저장 셀의 각각의 열에 제1 비트라인 및 제2 비트라인이 제공되고,
각각의 저장 셀은 제1 워드라인의 제어 회로에 의해 제공된 신호에 응답하여 제1 비트라인에 저장 셀을 선택적으로 결합하는 제1 제어 장치, 및 제2 워드라인의 제어 회로에 의해 제공된 신호에 응답하여 제2 비트라인에 저장 셀을 선택적으로 결합하는 제2 제어 장치를 포함하는 저장 장치.
(10) 조항 (8) 또는 (9)에 있어서, 논 내용 주소화 모드의 판독 연산에서, 제어 회로는 선택된 저장 셀을 포함하는 저장 셀의 행을 위한 제1 워드라인 및 제2 워드라인 모두를 어서트하는 저장 장치.
(11) 조항 (1) 내지 (10)중 어느 하나에 있어서, 서치 키는 복수의 서치 상태를 포함하고, 적어도 하나의 데이터 워드의 각각은 복수의 데이터 상태를 포함하고, 내용 주소화 모드에서, 비교에 의해 데이터 워드의 각각의 데이터 상태가 서치 키의 상응하는 서치 상태에 일치하는 적어도 하나의 데이터 워드중 하나에 대한 일치 상태를 판정하는 저장 장치.
(12) 조항 (11)에 있어서, 저장 셀의 각각의 행에 제1 워드라인 및 제2 워드라인이 제공되고,
내용 주소화 모드에서 실행되는 서치 동작에서, 어레이의 복수의 행의 각각에 대해, 제어 회로는 서치 키의 상응하는 서치 상태에 따라 선택된 제1 워드라인 및 제2 워드라인의 신호를 제공하는 저장 장치.
(13) 조항 (11) 및 (12)중 어느 하나에 있어서, 내용 주소화 모드는,
각각의 서치 상태가 제1 상태 및 제2 상태중 하나를 표현하고;
각각의 데이터 상태가 제1 상태 및 제2 상태중 하나를 표현하고;
데이터 상태가 상기 데이터 상태 및 상응하는 서치 상태가 동일한 상태를 나타내는 경우에 상응하는 서치 상태에 일치하는 이진 내용 주소화 모드를 포함하는 저장 장치.
(14) 조항 (13)에 있어서, 이진 내용 주소화 모드에서, 각각의 데이터 상태는 단일 저장 셀에 저장된 데이터 값에 의해 표현되는 저장 장치.
(15) 조항 (14)에 있어서, 저장 셀의 각각의 열에 제1 비트라인 및 제2 비트라인이 제공되고, 상기 저장 장치는 상기 제1 비트라인 및 제2 비트라인의 신호 레벨을 감지하는 감지 회로를 포함하고,
이진 내용 주소화 모드에서, 상기 적어도 하나의 데이터 워드의 각각에 있어서, 감지 회로는 상응하는 열에 대한 제1 및 제2 비트라인의 신호 레벨 모두 사전결정된 임계값을 초과하는 경우에 일치 표시를 출력하는 저장 장치.
(16) 조항 (11) 내지 (15)중 어느 하나에 있어서, 내용 주소화 모드는
각각의 서치 상태가 제1 상태, 제2 상태 및 마스크 상태중 하나를 표현하고;
각각의 데이터 상태가 제1 상태, 제2 상태 및 마스크 상태중 하나를 표현하고;
데이터 상태 및 상응하는 서치 상태중 하나가 제1 상태를 표현하고 다른 것이 제2 상태를 표현하지 않으면 데이터 상태가 상응하는 서치 상태에 일치하는 3진 내용 주소화 모드를 포함하는 저장 장치.
(17) 조항 (16)에 있어서, 3진 내용 주소화 모드에서, 각각의 데이터 상태는 2개의 인접한 열의 동일한 행의 저장 셀에 저장된 데이터 값에 의해 표현되는 저장 장치.
(18) 조항 (17)에 있어서, 저장 셀의 각각의 열에 제1 비트라인 및 제2 비트라인이 제공되고, 저장 장치는 상기 제1 비트라인 및 제2 비트라인의 신호 레벨을 감지하는 감지 회로를 포함하고;
3진 내용 주소화 모드에서, 상기 적어도 하나의 데이터 워드의 각각에 대해, 상기 2개의 인접한 열중 하나에 대한 제1 비트라인 및 상기 2개의 인접한 열의 다른 것에 대한 제2 비트라인의 신호 레벨이 사전결정된 임계값을 초과하는 경우에 일치 표시를 출력하는 저장 장치.
(19) 조항 (11) 내지 (18)에 있어서, 내용 주소화 모드는 또한 표적 데이터 워드를 표현하기 위해 데이터 값을 어레이의 복수의 저장 셀에 기록하기 위한 기록 연산을 지원하고;
상기 기록 연산은 상기 데이터 상태중 상이한 상태에 각각 상응하는 복수의 기록 사이클을 포함하고, 각각의 기록 사이클에서 제어 회로는 현재 기록 사이클에 상응하는 데이터 상태가 기록되는 저장 셀을 선택하기 위한 복수의 워드라인에 신호를 제공하는 저장 장치.
(20) 조항 (10) 내지 (19)에 있어서, 내용 주소화 모드에서 서치 연산 또는 기록 연산 동안 저장 셀의 어레이의 데이터 값을 교란으로부터 보호하는 보호 회로를 포함하는 저장 장치.
(21) 조항 (1) 내지 (20)중 어느 하나에 있어서, 내용 주소화 모드에서 서치 연산 동안, 상기 복수의 워드라인의 전압이 상기 복수의 저장 셀에 대한 공급 전압 보다 낮은 저장 장치.
(22) 조항 (1) 내지 (21)의 어느 하나에 있어서, 내용 주소화 모드에서 기록 연산 동안, 기록되는 저장 셀의 선택된 열의 상기 복수의 워드라인의 전압 및 저장 셀에 대한 공급 전압이 어레이의 다른 열의 저장 셀에 대한 공급 전압 보다 낮은 저장 장치.
(23) 조항 (1) 내지 (22)에 따른 저장 장치를 포함하는 데이터 처리 장치.
(24) 메모리 컴파일러 컴퓨터 프로그램과 연관된 메모리 구조로부터 메모리 장치의 인스턴스를 생성하도록 컴퓨터를 제어하기 위한 메모리 컴파일러 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 메모리 구조는 회로 소자의 정의 및 이러한 회로 소자를 조합하기 위한 데이터 정의 규칙을 규정하여, 상기 생성된 인스턴스는 조항 (1) 내지 (22)중 하나의 저장 장치를 포함하는 메모리 장치를 규정하는 컴퓨터 판독가능 저장 매체.
(25) 저장 장치로서,
데이터 값을 저장하기 위한 저장 셀의 어레이; 및
상기 어레이의 저장 셀 수단의 하나 이상의 행을 선택하기 위한 복수의 워드라인 수단에 제어 신호를 제공하기 위한 제어 수단을 포함하고,
상기 저장 장치는,
상기 제어 수단이 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하기 위해 상기 복수의 워드라인의 신호를 제어하는 판독 연산을 지원하는 논 내용 주소화 모드; 및
상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현되는 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하기 위해 상기 복수의 워드라인의 신호를 제어하는 서치 연산을 지원하는 내용 주소화 모드를 포함하는 복수의 모드를 갖고 있는 저장 장치.
(26) 상기 어레이의 저장 셀의 하나 이상의 행을 선택하기 위한 복수의 워드라인 및 저장 셀의 어레이를 포함하는 저장 장치를 위한 방법으로서,
상기 저장 장치의 논 내용 주소화 모드 및 내용 주소화 모드중 하나를 선택하는 단계;
논 내용 주소화 모드가 선택되면, 상기 복수의 워드라인의 신호가 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하도록 제어되는 판독 연산을 실행하는 단계; 및
내용 주소화 모드가 선택되면, 상기 복수의 워드라인의 신호가 상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현된 적어도 하나의 데이터 워드와 서치 사이의 비교를 트리거하도록 제어되는 서치 연산을 실행하는 단계를 포함하는 방법.
(27) 복수의 6T SRAM 저장 셀을 포함하는 저장 장치로서, 각각의 저장 셀은 제1 워드라인에 제공된 신호에 응답하여 제1 비트라인에 저장 셀을 결합하는 제1 액세스 트랜지스터 및 상기 제1 워드라인과 상이한 제2 워드라인에 제공된 신호에 응답하여 제2 비트라인에 저장 셀을 결합하는 제2 액세스 트랜지스터를 포함하는 저장 장치.
(28) 6T SRAM 저장 셀의 어레이; 및
제어 회로가 상기 어레이의 선택된 저장 셀로부터의 데이터 값의 판독을 트리거하는 신호를 제옥하는 판독 연산을 지원하는 논 내용 주소화 모드, 및 상기 제어 회로가 상기 어레이의 다수의 저장 셀에 저장된 데이터 값에 의해 표현된 적어도 하나의 데이터 워드와 서치 키 사이의 비교를 트리거하는 신호를 제공하는 서치 연산을 지원하는 내용 주소화 모드를 갖는 제어 회로를 포함하는 저장 장치.
본 발명의 실시예가 첨부된 도면을 참조하여 여기에 상세하게 기술되었지만, 본 발명은 이러한 상세한 실시예에 제한되지 않고 다양한 변경 및 수정이 첨부된 청구범위에 의해 규정된 본 발명의 범위 및 정신으로부터 벗어남 없이 당업자에게 가능하다는 것을 이해해야 한다.
Claims (20)
- 데이터 값을 저장하는 복수의 저장 셀;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하는 제어 회로; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용된 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인의 적어도 하나에서 신호 레벨을 감지하는 감지 회로를 포함하는 것을 특징으로 하는 저장 장치. - 제1항에 있어서, 상기 저장 셀은 각각의 저장 셀이 한 쌍의 비트라인과의 워드라인의 교차점에 있는 상태로 열과 행으로 배열되어 있고, 동일한 행의 저장 셀은 동일한 워드라인을 공유하고 동일한 열의 저장 셀은 동일한 쌍의 비트라인을 공유하는 것을 특징으로 하는 저장 장치.
- 제2항에 있어서, 상기 적어도 2개의 저장 셀은 동일한 열에 저장 셀을 포함하고, 상기 적어도 하나의 공통 신호 라인은 이러한 열에 상응하는 한 쌍의 비트라인을 포함하는 것을 특징으로 하는 저장 장치.
- 제2항에 있어서, 상기 논리 연산의 결과를 얻는 동작에서, 상기 제어 회로는 상기 적어도 2개의 저장 셀에 상응하는 적어도 2개의 워드라인을 동시에 어서트하는 것을 특징으로 하는 저장 장치.
- 제3항에 있어서, 상기 감지 회로는 상기 한 쌍의 비트라인중 적어도 하나의 절대 신호 레벨을 감지하기 위한 단일 종단 감지 모드를 갖는 것을 특징으로 하는 저장 장치.
- 제5항에 있어서, 상기 감지 회로는 또한 상기 한 쌍의 비트라인의 신호 레벨 사이의 차이를 감지하기 위한 차동 감지 모드를 갖는 것을 특징으로 하는 저장 장치.
- 제6항에 있어서, 상기 저장 셀중 하나에 저장된 데이터 값을 판독하는 판독 연산을 실행할 때 차동 감지 모드를 선택하고, 상기 논리 연산의 결과를 판정하는 연산을 실행할 때 단일 종단 감지 모드를 선택하는 모드 선택 회로를 포함하는 것을 특징으로 하는 저장 장치.
- 제6항에 있어서, 상기 감지 회로는 각각 제1 인버터 및 제2 인버터를 포함하는 2개 쌍의 교차 결합 인버터를 포함하고;
상기 차동 감지 모드에서, 각각의 쌍의 교차 결합 인버터는 상기 한 쌍의 비트라인의 제1 비트라인에 결합된 제1 인버터의 입력부 및 상기 한 쌍의 비트라인의 제2 비트라인에 결합된 제2 인버터의 입력부를 갖고 있고;
상기 단일 종단 감지 모드에서, 한 쌍의 교차 결합 인버터는 상기 제1 비트라인에 결합된 제1 인버터의 입력부 및 기준 신호 레벨에 결합된 제2 인버터의 입력부를 갖고 있고, 다른 쌍의 교차 결합 인버터는 상기 기준 신호 레벨에 결합된 제1 인버터의 입력부 및 상기 제2 비트라인에 결합된 제2 인버터의 입력부를 갖고 있는 것을 특징으로 하는 저장 장치. - 제1항에 있어서, 상기 적어도 하나의 공통 신호 라인에 결합될 때 상기 적어도 2개의 저장 셀의 데이터 값을 교란으로부터 보호하는 보호 회로를 포함하는 것을 특징으로 하는 저장 장치.
- 제4항에 있어서, 상기 적어도 2개의 워드라인을 어서트할 때, 상기 적어도 2개의 워드라인의 전압은 상기 적어도 2개의 저장 셀에 대한 공급 전압 보다 낮은 것을 특징으로 하는 저장 장치.
- 제1항에 있어서, 상기 논리 연산은,
AND;
NAND;
NOR;
OR;
XOR; 및
XNOR중 적어도 하나를 포함하는 것을 특징으로 하는 저장 장치. - 제3항에 있어서, 상기 논리 연산은 AND 또는 NAND 연산을 포함한다면, 상기 감지 회로는 상기 공통 쌍의 비트라인의 제1 비트라인의 신호 레벨을 감지하고, 상기 논리 연산의 결과는 상기 제1 비트라인의 신호 레벨이 0 또는 1인지 여부에 의해 표시되는 것을 특징으로 하는 저장 장치.
- 제3항에 있어서, 상기 논리 연산이 NOR 또는 OR 연산을 포함한다면, 상기 감지 회로는 상기 공통 쌍의 비트라인의 제2 비트라인의 신호 레벨을 감지하고, 상기 논리 연산의 결과는 상기 제2 비트라인의 신호 레벨이 0 또는 1인지 여부에 의해 표시되는 것을 특징으로 하는 저장 장치.
- 제3항에 있어서, 상기 논리 연산이 XOR 또는 XNOR 연산을 포함한다면, 상기 감지 회로는 상기 공통 쌍의 비트라인의 양측 비트라인의 신호 레벨을 감지하고, 상기 논리 연산의 결과는 양측 비트라인의 신호 레벨이 0인지 여부에 의존하는 것을 특징으로 하는 저장 장치.
- 제1항에 있어서, 상기 저장 셀은 SRAM 셀을 포함하는 것을 특징으로 하는 저장 장치.
- 제1항에 있어서, 상기 저장 셀은 6T SRAM 셀을 포함하는 것을 특징으로 하는 저장 장치.
- 제1항에 따른 저장 장치를 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 데이터 값을 저장하기 위한 복수의 저장 셀 수단;
적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하기 위한 제어 수단; 및
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 신호 레벨을 감지하기 위한 감지 수단을 포함하는 것을 특징으로 하는 저장 장치. - 저장 장치의 적어도 2개의 저장 셀을 적어도 하나의 공통 신호 라인에 동시에 결합하는 단계;
상기 적어도 2개의 저장 셀의 각각에 저장된 데이터 값에 적용되는 논리 연산의 결과를 나타내는 상기 적어도 하나의 공통 신호 라인중 적어도 하나의 신호 레벨을 감지하는 단계를 포함하는 것을 특징으로 하는 방법. - 메모리 컴파일러 컴퓨터 프로그램과 연관된 메모리 구조로부터 메모리 장치의 인스턴스를 생성하도록 컴퓨터를 제어하기 위한 메모리 컴파일러 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 메모리 구조는 회로 소자의 정의 및 이러한 회로 소자를 조합하기 위한 데이터 정의 규칙을 규정하여, 상기 생성된 인스턴스는 제1항의 저장 장치를 포함하는 메모리 장치를 규정하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/586,076 US9396795B1 (en) | 2014-12-30 | 2014-12-30 | Storage device supporting logical operations, methods and storage medium |
US14/586,076 | 2014-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160082234A true KR20160082234A (ko) | 2016-07-08 |
KR102306528B1 KR102306528B1 (ko) | 2021-09-29 |
Family
ID=56164985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150189870A KR102306528B1 (ko) | 2014-12-30 | 2015-12-30 | 저장 장치, 방법 및 저장 매체 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9396795B1 (ko) |
KR (1) | KR102306528B1 (ko) |
TW (1) | TWI692760B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210154683A (ko) * | 2020-06-12 | 2021-12-21 | 고려대학교 산학협력단 | 산술 연산을 지원하는 컴퓨팅 인 메모리 및 그 제어 동작 방법 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2529221A (en) * | 2014-08-14 | 2016-02-17 | Ibm | Content addressable memory cell and array |
US10403384B2 (en) | 2016-06-22 | 2019-09-03 | Darryl G. Walker | Testing a semiconductor device including a voltage detection circuit and temperature detection circuit that can be used to generate read assist and/or write assist in an SRAM circuit portion and method therefor |
US9940999B2 (en) | 2016-06-22 | 2018-04-10 | Darryl G. Walker | Semiconductor devices, circuits and methods for read and/or write assist of an SRAM circuit portion based on voltage detection and/or temperature detection circuits |
US9870818B1 (en) * | 2016-10-04 | 2018-01-16 | Qualcomm Incorporated | Separate read and write address decoding in a memory system to support simultaneous memory read and write operations |
US10891076B1 (en) | 2016-12-06 | 2021-01-12 | Gsi Technology, Inc. | Results processing circuits and methods associated with computational memory cells |
US11227653B1 (en) | 2016-12-06 | 2022-01-18 | Gsi Technology, Inc. | Storage array circuits and methods for computational memory cells |
US10860320B1 (en) | 2016-12-06 | 2020-12-08 | Gsi Technology, Inc. | Orthogonal data transposition system and method during data transfers to/from a processing array |
US10847213B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Write data processing circuits and methods associated with computational memory cells |
US10943648B1 (en) | 2016-12-06 | 2021-03-09 | Gsi Technology, Inc. | Ultra low VDD memory cell with ratioless write port |
US10249362B2 (en) | 2016-12-06 | 2019-04-02 | Gsi Technology, Inc. | Computational memory cell and processing array device using the memory cells for XOR and XNOR computations |
US10725777B2 (en) * | 2016-12-06 | 2020-07-28 | Gsi Technology, Inc. | Computational memory cell and processing array device using memory cells |
US10854284B1 (en) | 2016-12-06 | 2020-12-01 | Gsi Technology, Inc. | Computational memory cell and processing array device with ratioless write port |
US10847212B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers |
US10777262B1 (en) | 2016-12-06 | 2020-09-15 | Gsi Technology, Inc. | Read data processing circuits and methods associated memory cells |
US10699778B2 (en) * | 2017-04-28 | 2020-06-30 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (SRAM) cell and related SRAM array for deep neural network and machine learning applications |
US10049729B1 (en) | 2017-09-19 | 2018-08-14 | Qualcomm Incorporated | Flexible memory assistance scheme |
FR3075446B1 (fr) * | 2017-12-19 | 2020-10-02 | Commissariat Energie Atomique | Circuit memoire adapte a mettre en oeuvre des operations de calcul |
US10643722B2 (en) * | 2018-01-12 | 2020-05-05 | Taiwan Semiconductor Manufacturing Co., Ltd. | Memory device |
JP7091918B2 (ja) * | 2018-08-02 | 2022-06-28 | 株式会社ソシオネクスト | 半導体記憶装置およびその制御方法 |
US11436046B2 (en) | 2018-10-11 | 2022-09-06 | Powerchip Semiconductor Manufacturing Corporation | Electronic device with memory processor-based multiprocessing architecture and operation method thereof |
FR3088767B1 (fr) | 2018-11-16 | 2022-03-04 | Commissariat Energie Atomique | Circuit memoire adapte a mettre en oeuvre des operations de calcul |
US10958272B2 (en) | 2019-06-18 | 2021-03-23 | Gsi Technology, Inc. | Computational memory cell and processing array device using complementary exclusive or memory cells |
US10877731B1 (en) | 2019-06-18 | 2020-12-29 | Gsi Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
US11114156B2 (en) | 2019-10-22 | 2021-09-07 | Micron Technology, Inc. | Read spike mitigation in integrated circuit memory |
CN112214197B (zh) * | 2020-10-16 | 2022-10-04 | 苏州兆芯半导体科技有限公司 | Sram全加器及多比特sram全加器 |
US11605418B2 (en) * | 2020-10-26 | 2023-03-14 | Micron Technology, Inc. | Memory device architecture using multiple physical cells per bit to improve read margin and to alleviate the need for managing demarcation read voltages |
US11996137B2 (en) * | 2021-05-21 | 2024-05-28 | Taiwan Semiconductor Manufacturing Company, Ltd. | Compute in memory (CIM) memory array |
US11955171B2 (en) | 2021-09-15 | 2024-04-09 | Mavagail Technology, LLC | Integrated circuit device including an SRAM portion having end power select circuits |
WO2023137696A1 (zh) * | 2022-01-21 | 2023-07-27 | 北京大学深圳研究生院 | 一种逻辑运算存储单元、存储阵列和逻辑运算存储器 |
US11942144B2 (en) | 2022-01-24 | 2024-03-26 | Stmicroelectronics S.R.L. | In-memory computation system with drift compensation circuit |
US11894052B2 (en) | 2022-04-12 | 2024-02-06 | Stmicroelectronics S.R.L. | Compensated analog computation for an in-memory computation system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010112598A (ko) * | 2000-06-12 | 2001-12-20 | 포만 제프리 엘 | 메모리 디바이스, 그 디바이스의 비트 라인 컨택트 저항테스팅 방법, 및 sram 메모리 어레이 시스템 |
US20070008760A1 (en) * | 2005-07-06 | 2007-01-11 | Renesas Technology Corp. | Highly integrated ternary semiconductor memory device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6310880B1 (en) * | 2000-03-17 | 2001-10-30 | Silicon Aquarius, Inc. | Content addressable memory cells and systems and devices using the same |
US6836419B2 (en) * | 2002-08-23 | 2004-12-28 | Micron Technology, Inc. | Split word line ternary CAM architecture |
US6954369B2 (en) * | 2003-07-25 | 2005-10-11 | Micron Technology, Inc. | Noise reduction in a CAM memory cell |
US8848412B1 (en) * | 2013-07-05 | 2014-09-30 | Arm Limited | Ternary content addressable memory |
-
2014
- 2014-12-30 US US14/586,076 patent/US9396795B1/en active Active
-
2015
- 2015-12-30 TW TW104144529A patent/TWI692760B/zh active
- 2015-12-30 KR KR1020150189870A patent/KR102306528B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010112598A (ko) * | 2000-06-12 | 2001-12-20 | 포만 제프리 엘 | 메모리 디바이스, 그 디바이스의 비트 라인 컨택트 저항테스팅 방법, 및 sram 메모리 어레이 시스템 |
US20070008760A1 (en) * | 2005-07-06 | 2007-01-11 | Renesas Technology Corp. | Highly integrated ternary semiconductor memory device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210154683A (ko) * | 2020-06-12 | 2021-12-21 | 고려대학교 산학협력단 | 산술 연산을 지원하는 컴퓨팅 인 메모리 및 그 제어 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20160189769A1 (en) | 2016-06-30 |
TWI692760B (zh) | 2020-05-01 |
US9396795B1 (en) | 2016-07-19 |
TW201637013A (zh) | 2016-10-16 |
KR102306528B1 (ko) | 2021-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102306528B1 (ko) | 저장 장치, 방법 및 저장 매체 | |
US8233302B2 (en) | Content addressable memory with concurrent read and search/compare operations at the same memory cell | |
US10049709B2 (en) | Port modes for use with memory | |
TWI618063B (zh) | 三元內容可定址記憶體 | |
US7564738B2 (en) | Double-rate memory | |
US6222777B1 (en) | Output circuit for alternating multiple bit line per column memory architecture | |
JPH10106269A (ja) | 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム | |
US8050114B2 (en) | Memory device having a single pass-gate transistor per bitline column multiplexer coupled to latch circuitry and method thereof | |
US6778435B1 (en) | Memory architecture for TCCT-based memory cells | |
JP6147461B1 (ja) | 半導体記憶装置 | |
TWI566245B (zh) | 在雙寫入線半導體記憶體中的寫入協助 | |
US20220068329A1 (en) | Apparatuses and methods to perform low latency access of a memory | |
KR20050018046A (ko) | 메모리 클럭 신호의 주파수를 선택적으로 가변시키는메모리 컨트롤러 및 이를 이용한 메모리의 데이터 독출동작 제어방법 | |
US20080137450A1 (en) | Apparatus and method for sram array power reduction through majority evaluation | |
JP5339544B2 (ja) | パラレル連想メモリ | |
US7558924B2 (en) | Systems and methods for accessing memory cells | |
US20160064070A1 (en) | Low power sram | |
US11663124B2 (en) | Apparatuses and methods for interfacing on-memory pattern matching | |
US20230223075A1 (en) | Pseudo-triple-port sram datapaths | |
US9786362B1 (en) | Memory circuit and data processing system | |
KR101149816B1 (ko) | 캐쉬 메모리의 캐쉬 히트 로직 | |
US11264081B1 (en) | Memory circuit, electronic device having the memory circuit, and method of operating memory circuit | |
KR101155120B1 (ko) | 데이터 손실을 최소화하는 바이너리 내용 주소화 메모리 | |
JP2001167585A (ja) | 連想記憶装置 | |
US20080212394A1 (en) | Write driving circuit and semiconductor memory apparatus using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |