KR20140085468A - 행 시프팅 시프트가능 메모리 - Google Patents

행 시프팅 시프트가능 메모리 Download PDF

Info

Publication number
KR20140085468A
KR20140085468A KR1020147011192A KR20147011192A KR20140085468A KR 20140085468 A KR20140085468 A KR 20140085468A KR 1020147011192 A KR1020147011192 A KR 1020147011192A KR 20147011192 A KR20147011192 A KR 20147011192A KR 20140085468 A KR20140085468 A KR 20140085468A
Authority
KR
South Korea
Prior art keywords
data
memory
column
shiftable
shift
Prior art date
Application number
KR1020147011192A
Other languages
English (en)
Inventor
나빈 무랄리마노하
한스 보엠
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20140085468A publication Critical patent/KR20140085468A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/18Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages
    • G11C19/182Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes
    • G11C19/188Organisation of a multiplicity of shift registers, e.g. regeneration, timing or input-output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/28Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
    • G11C19/287Organisation of a multiplicity of shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

시프트가능 메모리는 행을 따라 데이터를 시프팅하기 위해 행 시프팅을 사용한다. 시프트가능 메모리는 복수의 행들 및 복수의 열들로서 배열되는 메모리 셀들을 포함한다. 시프트가능 메모리는 데이터를 제 1 열의 출력으로부터 제 2 열의 입력으로 시프팅하는 시프트 로직을 더 포함한다. 시프팅된 데이터는 선택된 행에 있는 제 1 열의 메모리 셀에 의해 제공된다. 시프팅된 데이터는 메모리 셀에 의해 수신되고 제 2 열의 선택된 행에 저장된다. 시프트 로직은 선택된 행을 따라 데이터를 시프팅하는 것을 가능하게 한다.

Description

행 시프팅 시프트가능 메모리{ROW SHIFTING SHIFTABLE MEMORY}
본 발명은 행 시프팅 시프트가능형 메모리에 관한 것이다.
현대의 컴퓨터들 및 관련되는 프로세싱 시스템들은 전형적으로 프로세서 및 어떤 형태의 메모리를 포함한다. 프로세서는 일반적으로 컴퓨터의 다양한 계산 업무들을 실행하는 일을 담당하고 반면에 메모리는 내부에서 이용되고 계산 업무들에 의해 생성되는 데이터를 저장한다. 프로세서에 의한 프로세싱과 메모리에 의한 데이터 저장의 아키텍처 분할은 그와 같은 시스템들의 거의 전체 역사 동안 성공적인 것으로 판명되었다.
예를 들어, 전형적인 범용 컴퓨터는 통상적으로 하나 이상의 통신 채널들(예를 들어, 데이터 및 어드레스 버스들)을 통해 서로 통신하는 중앙 처리 장치(CPU) 및 주 메모리를 포함한다. 전형적으로, CPU는 다양한 대수 및 논리 연산들을 수행하고, 연산 시퀀싱(operational sequencing)을 제공하고 그 외에 범용 컴퓨터의 양태들을 제어하는 기능들을 제공한다. 예를 들어, 사실상 모든 CPU들은 메모리로부터 데이터를 판독하고, 메모리에 데이터를 기록하고 이 데이터를 이용하여 미리 정의된 업무를 수행하는 명령들의 세트를 포함하는 프로그램을 수행하는 기능들 또는 연산들을 제공한다. 게다가, CPU들은 주변장치들뿐만 아니라 범용 컴퓨터의 외부에 있는 서브시스템들과 통신할 수 있도록 하는 입력/출력(I/O)을 처리할 수 있다. CPU들은 심지어 일부 예들에서 그래픽 디스플레이 유닛(예를 들어, 모니터)을 생성하고 갱신하는 것을 다루기 위한 그래픽 프로세싱을 제공할 수 있다.
대조적으로, 정적 랜덤 액세스 메모리(static random access memory; SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM), 판독 전용 메모리(read-only memory; ROM), 프로그래머블 ROM(programmable ROM; PROM), 플래시 메모리 및 다양한 다른 메모리 유형들 중 하나 이상을 포함할 수 있는 현대식 컴퓨터들의 주 메모리는 전형적으로 상대적으로 협소한 케이퍼빌리티(capability)들의 세트를 제공한다. 이 케이퍼빌리티들 중에서는 CPU에 의해 실행되고 이용되는 컴퓨터 프로그램들 및 데이터를 저장하는 것이 주가 된다. 내부에서 발견될 수 있거나 흔히 현대식 컴퓨터들의 주 메모리와 연관되는 다른 제한된 케이퍼빌리티들 중에는 특정 메모리 관리 기능들이 있다. 예를 들어, 주 메모리의 DRAM 메모리 서브시스템들은 내부에 저장되는 데이터의 자동 리프레쉬(refresh)를 위한 회로소자를 소유할 수 있다.
본원에서 기술되는 원리들에 따른 예들의 다양한 특징들은 첨부 도면들과 함께 취해지는 다음의 상세한 설명을 참조하여 더욱 가능하게 이해될 수 있고, 여기서 동일한 참조 번호들은 동일한 구조 요소들을 지정한다.
도 1a는 본원에서 기술되는 원리들의 하나의 예에 따라, 시프트가능 메모리 내의 수평 행(horizontal row)에 저장되는 데이터의 연속 서브세트의 우 시프트(right shift)의 하나의 예를 도시한다.
도 1b는 본원에서 기술되는 원리들의 하나의 예에 따라, 시프트가능 메모리 내의 행(row)에 저장되는 데이터의 연속 서브세트의 좌 시프트(left shift)의 하나의 예를 도시한다.
도 2는 본원에서 기술되는 원리들에 따른 예에 따른 하나의 예에 따라, 행 시프팅(raw shifting)을 이용하는 시프트가능 메모리의 블록도를 도시하는 도면이다.
도 3a는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 예시 SRAM 메모리 셀의 개략도를 도시하는 도면이다.
도 3b는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 예시 DRAM 메모리 셀의 개략도를 도시하는 도면이다.
도 4a는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 멀티플렉서(multiplexer)를 포함하는 시프트 로직의 개략도를 도시하는 도면이다.
도 4b는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 멀티플렉서를 포함하는 시프트 로직의 개략도를 도시하는 도면이다.
도 5a는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 시프트가능 메모리에서의 워드-크기 시프팅의 하나의 예의 개략적인 블록도를 도시하는 도면이다.
도 5b는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 시프트가능 메모리에서의 워드-크기 시프팅의 하나의 예의 개략적인 블록도를 도시하는 도면이다.
도 5c는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 시프트 거리를 동적으로 제어하기 위해 리매핑(remapping)을 사용하는 시프트가능 메모리에서의 시프팅의 하나의 예의 개략적인 블록도를 도시하는 도면이다.
도 6은 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 시프트가능 메모리에서 데이터를 시프팅하는 방법의 흐름도를 도시하는 도면이다.
특정한 예들은 상기 참조 도면들에서 도시된 특징들 외에 그리고 상기 특징들을 대신하는 것들인 다른 특징들을 가질 수 있다. 상기 및 다른 특징들은 상기 참조 도면들을 참조하여 후술된다.
본원에서 기술되는 원리들에 따른 예들은 행 시프팅을 이용하는 내장된 시프팅 케이퍼빌리티들을 지니는 시프트가능 메모리를 제공한다. 특히, 시프트가능 메모리의 선택된 행에 저장된 데이터의 연속 서브세트는 내장 시프팅 케이퍼빌리티를 구현하기 위해 시프트가능 메모리에 의해 시프팅된다. 내장 데이터 시프팅 케이퍼빌리티는 메모리 내에 저장되는 데이터의 연속 서브세트의 측 이동 또는 시프트를 제공한다. 측 이동은 다양한 예들에 따라 저장된 데이터의 우 시프트 및 좌 시프트 중 하나 또는 이 둘 모두를 제공한다. 더욱이, 시프트의 양 또는 거리뿐만 아니라 시프트의 방향(즉, 우 또는 좌)은 예를 들어 선택 가능할 수 있다. 본원에서 기술되는 원리들에 따른 예들은 컴퓨터 시스템들 및 관련 데이터 프로세싱 시스템 내에 적용된다. 특히, 본원에서 기술되는 예들은 광범위한 데이터 프로세싱 업무들에 유용한 내장 시프팅 케이퍼빌리티를 시프트가능 메모리에 제공한다.
다양한 예들에 따르면, 저장된 데이터(예를 들어, 데이터 워드들)의 연속 서브세트는 메모리 내에서 행을 따라 제 1 메모리 장소에서 제 2 메모리 장소로 시프팅될 수 있다. 시프팅된 데이터는 일부 예들에 따르면, 행에 있는 제 2 장소로 시프팅될 때 연속 서브세트 내의 순서화된 관계를 지닌다. 더욱이, 시프트는 전적으로 메모리 내에서(예를 들어, 메모리 칩 또는 칩셋 내에서) 발생하고 시프트는 일반적으로 프로세서와 같이 메모리 외부에 있는 자원들을 사용하지 않고 달성된다. 특히, 시프트는 다양한 예들에 따르면, 시프트가능 메모리의 회로소자(예를 들어, 시프트 회로)를 포함하는 시프트 로직(shift logic)을 사용하여 성취된다. 더욱이, 다양한 예들에 따르면, 시프트는 데이터가 프로세서 및 메모리 사이에서 이동되는 것을 수반하지 않는다. 결과적으로, 내장 시프팅 케이퍼빌리티를 지니는 메모리는 본원에서 '시프트가능 메모리(shiftable memory)'로 칭해진다.
일부 예들에서, 본원에서 시프트가능 메모리에 의해 제공되는 시프트는 새 데이터가 삽입될 수 있는 메모리 내의 장소를 개방하는 데 이용될 수 있다. 특히, 저장된 데이터의 연속 서브세트의 좌 또는 우의 메모리 장소는 저장된 데이터의 연속 서브세트가 시프트가능 메모리 내의 시프트에 의해 이동될 때 데이터 삽입에 이용 가능하게 렌더링(rendering)될 수 있다. 일부 예들에서, 연속 서브세트는 전체 행(또는 선택된 행)의 데이터를 포함한다. 이 예들에서, 시프트에 의해 개방되는 메모리 장소는 행의 좌단(예를 들어 시단(beginning end)) 및 행의 우단(예를 들어 종단(terminal end)) 중 하나에 있을 수 있다. 다른 예들에서, 연속 서브세트는 행의 데이터의 일부만을 포함한다. 그와 같은 예들에서, 시프트에 의해 개방되는 위치는 행의 시단 및 종단 사이에 위치될 수 있다.
다른 예들에 따르면, 시프트는 연속 서브세트의 시점 전 그리고 연속 서브세트의 종점 후 중 하나에 저장되는 데이터를 삭제 또는 '중첩 기록(overwrite)'하는 데 이용될 수 있다. 특히, 연속 데이터가 시프트가능 메모리에 의해 시프팅될 때, 행에서의 연속 서브세트 우 또는 좌에 저장되는 데이터는 연속 서브세트 자체의 일부와 중첩 기록될 수 있다. 다른 예들에서, 연속 서브세트가 전체 행의 데이터를 포함하면, 연속 서브세트를 시프팅하는 것은 실질적으로 데이터의 일부를 행의 종점과 벗어나게 시프팅할 수 있다. 시프트의 방향에 따라, 데이터는 예를 들어 우측 종점 또는 좌측 종점으로부터 벗어나게 시프팅될 수 있다. 행의 종점으로부터 벗어나 시프팅된 데이터는 일부 예들에 따르면, 시프트가능 메모리로부터 실질적으로 '분실'되거나 제거되고 따라서 삭제된 것으로 간주될 수 있다. 데이터가 행의 종점으로부터 벗어나 시프팅됨으로써 삭제될 때, 데이터 삭제는 일부 예들에서 다른 데이터를 중첩 기록하지 않고 발생할 수 있다. 다른 예들에서, 행의 종점을 벗어나 시프팅된 데이터는 후속해서 다른 행으로 이동될 수 있다(예를 들어, 인접 행의 시점에 추가될 수 있다). 행의 종점을 벗어나서 시프팅되고 다른 행으로 이동된 데이터는 예를 들어, 다른 행에 있는 데이터를 중첩 기록한 결과로서 다른 행에 있는 데이터를 삭제하는 결과를 초래할 수 있다.
일부 예들에 따르면, 시프트가능 메모리 내에 데이터를 삽입하거나 또는 데이터를 삭제하기 위해 데이터를 시프팅하는 것은 시프트 가능 메모리를 사용하지 않고 일반적으로 가능한 것보다 더 적은 시간에, 일부 예들에서는 상당히 더 적은 시간에 달성될 수 있다. 실제로, 시프트는 일부 예들에 따르면, 시프트가능 메모리를 사용하여 실질적으로 일정한 시간(예를 들어, 고정된 수의 클럭 사이클들)에 달성될 수 있다. 예를 들어, 시프트는 시프트가능 메모리의 하나의 클럭 사이클에서 달성될 수 있다.
대조적으로, 예를 들어 시프트를 수행하기 위해 프로세서에 의존하는 종래의 메모리는 일반적으로 시프팅되고 있는 데이터의 양에 비례하는 시간을 필요로 한다. 예를 들어, 종래의 메모리 내의 데이터를 시프팅하는 것은 전형적으로 시프팅되는 데이터를 판독하고 그 후에 데이터를 메모리로 다른 장소에 역으로 기록하는 프로세서를 수반한다. 판독 및 기록은 예를 들어, 종래의 메모리의 구조 및 기능으로 인해 프로세서에 의해 워드를 기준으로 수행될 수 있다. 시프팅되고 있는 데이터 내의 데이터의 각각의 유닛(예를 들어, 데이터 워드)은 우선 프로세서에 의해 종래의 메모리로부터 판독되고 그 후에 후속해서 종래의 메모리에 다시 기록되므로, 데이터를 시프팅하는 시간은 일반적으로 예를 들어, 시프팅되고 있는 데이터의 양 또는 길이(또는 데이터 워드들의 수)에 비례한다. 데이터량이 더 크면 클수록, 시프트 동작이 더 오래 걸릴 것이다.
더욱이, 종래의 메모리는 데이터를 시프팅할 때 판독 및 기록을 수행하기 위해 종래의 메모리의 외부에 있는 자원(예를 들어, 프로세서)에 의존한다. 시프트를 수행하는 자원이 종래의 메모리의 외부에 있으므로, 워드를 단위로 하는 시프팅에 수반되는 데이터 워드들의 각각은 임의의 형태의 데이터 버스 또는 유사한 통신 채널을 통해 외부 자원 및 종래의 메모리 사이에서 오고 가야만 한다. 데이터 버스 또는 유사한 통신 채널은 판독 및 기록 동작들의 속도를 실질적으로 제한하고, 결과적으로 시프팅의 전체 속도를 제한할 수 있다. 그러므로, 큰 데이터의 서브세트들을 시프팅하는 것은 종래의 메모리를 이용하여 시프팅을 수행하는 비례 시간 양태들 및 데이터 버스 속도의 효과들 중 하나 또는 이 둘 모두로 인해 프로세싱 시간 측면에서 상당한 손실이 될 수 있다.
본원에 기술되는 원리들에 따르면, 시프트가능 메모리는 예를 들어, 시프트를 수행하기 위해 외부 자원에 의해 데이터가 판독되고나서 기록되지 않도록 내장 시프팅 케이퍼빌리티를 가진다. 저장되는 데이터의 연속 서브세트는 시프트가능 메모리(예를 들어, 어드레스 및 길이를 이용하여)에게 식별되고 시프트가능 메모리는 상기 연속 서브세트를 시프팅하라는 명령을 받는다. 그 후에 시프트가능 메모리에 의해 시프트가 달성되고 전적으로 시프트가능 메모리 내에서 발생한다. 본원에서 기술되는 원리들의 예들에 따르면, 데이터를 외부 자원으로 그리고 외부 자원으로부터 전송하는 것과 관련되는 속도 한계들이 시프트가능 메모리에 의해 실질적으로 제거된다. 더욱이, 시프팅에 대한 시간은 예를 들어, 연속 서브세트의 길이에 실질적으로 독립적일 수 있다.
특히, 시프트가능 메모리 내에서의 시프팅은 본원에서 기술되는 원리들에 따르면, 시프트가능 메모리 자체의 회로소자로 구현될 수 있다. 그러한 바와 같이, 시프트가능 메모리를 이용하여 시프팅하는 것은 연속 서브세트의 각각의 데이터 워드를 순차적으로 판독하고 기록할 것을 요구하지 않는다. 예를 들어, 시프트가능 메모리를 이용하여 시프팅하는 것은 행을 따라 실질적으로 동시 방식으로 연속 서브세트 내의 데이터 모두를 시프팅할 수 있다. 그러한 바와 같이, 시프트가능 메모리는 연속 서브세트의 길이와 실질적으로 독립적인 시간에 연속 서브세트의 시프팅을 구현할 수 있다.
상술한 바와 같이, 일부 예들에서, 시프트가능 메모리는 기술되는 원리들에 따르면, 실질적으로 일정한 시간에서 시프팅을 수행할 수 있다. '일정한 시간'에 의해서, 저장되는 데이터의 연속 서브세트를 시프팅하는 데에는 연속 서브세트의 길이와는 관계 없이 실질적으로 유사한 시간 기간이 필요하다는 것을 의미한다. 예를 들어, 임의의 길이 연속 서브세트는 일부 예들에 따르면, 단일 클럭 사이클 내에서 시프팅될 수 있다. 다른 예에서, 더 짧은 연속 서브세트는 단일 클럭 사이클만을 필요로 할 수 있는 반면에 더 긴 연속 서브세트는 둘 이상의 클럭 사이클들을 요구할 수 있다. 그러나, 시프트가능 메모리가 상대적으로 더 짧은 서브세트들보다 더 긴 서브세트들에 시간을 더 많이 사용할 수 있을지라도, 일부 예들에 따르면, 요구되는 시간이 인접 서브세트 길이에 엄격하게 비례하지 않기 때문에 시프트는 실질적으로 일정한 시간에서 발생하는 것으로 간주될 수 있도록 충분히 빠르게 계속해서 수행된다.
본원에서, 용어 '메모리'는 데이터를 수신하고 저장할 수 있는 실질적으로 임의의 종류의 메모리를 칭한다. 메모리는 일반적으로, 예를 들어 컴퓨터 프로세서에 의해 또는 컴퓨터 시스템에서 이용될 수 있는 메모리와 일치한다. 특히, 본원에서의 정의에 의해, 메모리는 메모리를 이용하는 컴퓨터의 동작 동안 기록되거나 판독될 수 있는 임의의 종류의 메모리를 칭한다. 예를 들어, 메모리는 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 랜덤 액세스 메모리는 예를 들어, 정적 RAM(SRAM)일 수 있다. 다른 유형들의 메모리는 동적 랜덤 액세스 메모리(DRAM) 및 래치(latch)들, 플립-플롭(flip-flop)들 및 다른 쌍안정(bi-stable) 구조들(예를 들어, 멤리스터(memristor))들에 기초하는 다양한 메모리 아키텍처들을 포함하나 이로 제한되지 않는다.
또한 본원에서 의미상, 메모리는 일부 예들에 따르면, 어레이(array)로서 배열되는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 메모리 셀들은 2차원(2-D) 어레이로 배열될 수 있다. 더 높은 차수(예를 들어, 삼 차원 이상) 어레이들이 또한 이용될 수 있다. 일부 예들에서, 하위 차수의 어레이(예를 들어, 선형 어레이)는 더 큰 차원을 가지는 어레이(예를 들어, 2-D 어레이) 상에서 정의된다. 예를 들어, 2-D 어레이는 행들 및 열들(즉, 선형 어레이들)을 포함하는 메모리 셀들의 직사각형 2-D 어레이로서 배열된다. 메모리 셀들의 3차원(3-D) 배열은 일부 예들에 따르면, 복수의 인접한 2-D 어레이들을 사용하여 실현될 수 있다. 게다가, 어레이들은 서브-어레이들로 분할될 수 있다. 예를 들어, 2-D 직사각형 어레이는 4개의 서브-어레이들로서 4분면들로 분할될 수 있다.
메모리 셀은 본원에서 정의되고 사용되는 바와 같이, 데이터를 보유 또는 저장하는 회로 또는 관련된 구조이다. 더욱이, 본원에서 정의상, 메모리 셀은 일반적으로 하나 이상의 '비트들'의 데이터를 저장할 수 있다. 예를 들어, 비트는 이진값(예를 들어, '0' 또는 '1')을 나타낼 수 있고 메모리 셀은 단일 비트를 보유할 수 있다. 다른 예에서, 메모리 셀은 복수의 이진값 비트들을 보유할 수 있다. 예를 들어, 메모리 셀은 4, 8, 16, 32 또는 64 이진 비트들을 보유할 수 있다. 특히, 메모리 셀은 본원에서 정의되는 바와 같이, 복수의 비트들을 포함하는 완전한 데이터 워드를 보유 또는 저장할 수 있다. 또 다른 예에서, 메모리 셀은 데이터를 다른 형태로(예를 들어, 16진값, 아날로그 값 등) 보유할 수 있다. 특히, 메모리 셀은 본원에서 정의되는 바와 같이, 데이터를 이진 포맷으로 저장하는 것으로 제한되지 않고, 일부 실시예들에서는, 임의의 데이터 구조를 보유 또는 저장할 수 있다. 그러나, 본원에서 논의를 위해, 이진 데이터 및 단일 데이터 비트를 보유하는 메모리 셀들은 달리 정의되지 않으면 일반적으로 예로서 그러나 제한하지 않는 것으로 명세서 전체에 걸쳐 이용된다.
본원에서 사용되는 바와 같이, '행(row)'은 1차원(1-D) 어레이(예를 들어 선형 어레이)에 배열되는 메모리 셀들의 집합 또는 집단으로서 정의된다. 2-D 어레이는 예를 들어, 실질적으로 평행한 방식으로 배열되는 복수의 행들을 포함할 수 있다. 더욱이 본원에서, 메모리 셀들의 그룹을 포함하는 행은 특정한 컴퓨터 시스템의 하나 이상의 데이터 워드들을 구성하는 데이터(예를 들어, 복수의 데이터 비트들)를 보유할 수 있다. 다양한 예들에 따르면, 행의 메모리 셀들은 물리적으로 서로 인접한다. 예를 들어, 행의 제 1 메모리 셀은 행의 제 2 메모리 셀 바로 옆에 위치되고, 기타 마찬가지로, 행의 시단(예를 들어 좌단)에서 행의 종단(예를 들어 우단)으로 위치된다. 행은 상대적으로 많은 수의 메모리 셀들을 포함할 수 있다. 예를 들어, 행의 길이는 본원에서 기술되는 원리들에 따른 예들에 따르면, 다양한 실제적인 구현들에서, 1024 데이터 비트들, 2048 데이터 비트들, 4096 데이터 비트들 또는 그보다 많은 비트들일 수 있다.
메모리 셀들은 또한 흔히 본원에서 '메모리 장소(memory location)들'로서 칭해진다. 엄밀하게 말해서, 메모리 장소는 메모리 내의 한 특정한 장소에서의 메모리 셀 또는 셀들이고, 상기 장소는 어드레스에 의해 지정 또는 식별된다. 메모리 셀에는 예를 들어 어드레스를 사용하여 액세스한다. 그러나, 본원에서의 논의를 간소화하기 위해, 메모리 셀들은 일반적으로 어드레스를 가지거나 어드레스에 있는 것으로 칭해진다. 어드레스들 또는 장소들은 예를 들어, 시프트가능 메모리의 시프트가능 유닛(예를 들어 데이터 워드 또는 데이터 워드들의 세트)과 연관될 수 있다. 그러한 바와 같이, '장소' 및 어드레스는 본원에서 상호 교환하여 사용될 수 있다. 게다가 '장소'는 일부 예들에 따르면, 시작 어드레스(starting address) 및 종료 어드레스(ending address)에 의해 지정되는 데이터의 연속 서브세트의 장소를 칭하는 데 사용될 수 있다. 다른 예들에서, 연속 서브세트의 장소는 연속 서브세트의 시작(또는 종료) 어드레스 및 길이에 의해 지정될 수 있다. 또 다른 예들에서, 연속 서브세트는 실질적으로 행에 있는 데이터 모두를 포함한다. 그러므로, 연속 서브세트는 어드레스들의 쌍 또는 어드레스 및 길이에 의지하지 않고 행(예를 들어 행의 제 1 메모리 셀의 어드레스)에 의해 지정될 수 있다.
더욱이 본원에서 그리고 위에서 언급한 바와 같이, 시프트가능 메모리에 의해 수행되는 시프트는 달리 명시되지 않으면, 시프트가능 메모리 내에 저장되는 데이터의 연속 서브세트의 측 이동으로서 정의된다. 특히, 본원에서의 정의에 의해, 시프트가능 메모리를 이용하는 시프트는 연속 서브세트 내에 저장된 데이터를 시프트가능 메모리 내의 행에서의 제 1 장소로부터 제 2 장소로 측 이동(예를 들어, 행을 따른 좌 또는 우)하는 것을 구성한다. 더욱이, 상기 시프트는 저장되는 데이터의 연속 서브세트에 적용될 때, 연속 서브세트 내의 저장되는 데이터의 모두를 이동시킨다. 더욱이, 시프트가능 메모리에 의한 시프트는 본원에서의 정의에 의해, 시프트에 수반되는 데이터의 서브 세트의 외부의 데이터의 측 이동 또는 데이터의 시프트를 발생시키지 않는다. 일반적으로, 시프트는 행에 있는 하나 이상의 메모리 장소들 또는 메모리 어드레스들의 거리만큼 데이터를 이동시킬 수 있다. 예를 들어, 시프트는 메모리 내에서 데이터를 단일 메모리 장소 좌로 또는 우로 이동시킬 수 있다. 다른 예에서, 시프트는 데이터를 둘 이상의 메모리 장소들 우로 또는 좌로 이동시킬 수 있다.
본원에서, 방향 '좌(left)'는 시프트가능 메모리 내에서 행을 따른 메모리 장소들에 대하여, 일반적으로 더 작은 어드레스들을 가지는 장소들로의 방향으로서 정의된다. 방향 '우(right)'는 일반적으로 더 큰 어드레스들을 가지는 장소들로 행을 따른 방향으로서 정의된다. 그러므로, '좌 시프트'는 일부 예들에 따르면, 데이터를 행에서의 제 1 또는 시작 장소의 어드레스보다 더 작은 어드레스를 가지는 행 내의 제 2 장소로 시프팅하는 것으로 정의된다. 역으로, '우 시프트'는 일부 예들에 따르면, 결과적으로 행에 있는 데이터를 더 작은 어드레스를 가지는 제 1 장소로부터 더 큰 어드레스를 가지는 제 2 장소로 이동시킨다. 그러나, 시프트 방향이 일부 예들에서 제어 가능하고 선택 가능한 반면에, 시프트 방향(예를 들어 우 또는 좌)은 본원에서 사용되는 바와 같이, 전적으로 임의적일 수 있다. 더욱이, 본원에서 더 작고 큰 어드레스들의 개념뿐만 아니라 '좌 시프트' 및 '우 시프트'를 특정하게 사용하는 것은 논의를 위한 것이고 제한하려는 것은 아니다.
도 1a는 본원에서 기술되는 원리들의 하나의 예에 따라, 시프트가능 메모리 내의 수평 행(horizontal row)에 저장되는 데이터의 연속 서브세트의 우 시프트(right shift)의 하나의 예를 도시한다. 특히, 도 1a는 복수의 메모리 셀들을 도시하고, 이 셀들 각각은 데이터 비트를 저장할 수 있다. 예를 들어, 메모리 셀에 의해 저장되는 데이터 비트들은 이진 비트(예를 들어 '1' 또는 '0')를 포함할 수 있다. 더욱이 도시되는 바와 같이, 도시되는 메모리 셀들의 각각은 00부터 11까지 이르는 십진 어드레스(decimal address)에 의해 식별된다. 도 1a의 상부는 우 시프트 전의 복수의 메모리 셀들을 도시하고 반면에 하부는 우 시프트 이후의 동일한 복수의 메모리 셀들을 도시한다.
도 1a에 도시된 바와 같이, 시프트가능 메모리 내의 예시 우 시프트는 예를 들어 어드레스 03에서의 메모리 셀로 시작하여 어드레스 07에서의 메모리 셀로 끝나는 저장된 데이터의 연속 세트를 선택하는 것을 포함한다. 선택된 연속 서브세트는 도시된 예에서 데이터 비트들{'1', '0', '1', '1', '1'}을 포함한다. 시프트가능 메모리는 그 후에 도 1의 하부에 도시된 바와 같이, 저장된 데이터 비트들을 하나 우측의 어드레스 장소로 이동시킴으로써 데이터 비트들의 선택된 연속 서브세트를 우 시프팅한다. 우 시프트는 연속 서브세트 내의 비트들의 순서를 유지하고 연속 서브세트를 어드레스 04 및 어드레스 08 사이의 메모리 셀들에 놓는다. 저장된 데이터를 우 시프팅하는 것은 연속 서브세트의 원래의 장소의 바로 우측에(즉, 어드레스 08에) 메모리 셀의 컨텐츠를 중첩기록하고 상기 메모리 셀의 컨텐츠를 우 시프팅된 연속 서브세트의 최종 데이터 비트(즉, '1')로 대체한다. 더욱이, 원래 연속 서브세트의 제 1 데이터 값을 지니고 있었던 어드레스 04에서의 메모리 셀은 'X'에 의해 표시되는 바와 같이 부정형(indeterminate)들이 된다. 다양한 예들에 따르면, 어드레스 03에서의 메모리 셀은 우 시프트 전에 존재했던 데이터 비트(예를 들어, '1')의 카피를 보유하거나 우 시프트의 결과로서 제거(예를 들어, '0'으로 세팅)될 수 있다. 일부 예들에서, 어드레스 03에서의 메모리 셀은 예를 들어, 외부 소스로부터의 데이터 비트의 삽입에 이용 가능할 수 있다.
도 1b는 본원에서 기술되는 원리들의 하나의 예에 따라, 시프트가능 메모리 내의 행(row)에 저장되는 데이터의 연속 서브세트의 좌 시프트(left shift)의 하나의 예를 도시한다. 특히, 도 1b는 복수의 메모리 셀들을 도시하고 이 메모리 셀들의 각각은 데이터 비트를 저장한다(예를 들어, '1', '0', '0', '1', '0' 등). 더욱이 도시되는 바와 같이, 도시되는 메모리 셀들의 각각은 00부터 11까지 걸친 어드레스에 의해 식별된다. 도 1b의 상부는 좌 시프트 전의 복수의 메모리 셀들을 도시하고 반면에 하부는 좌 시프트 이후의 동일한 복수의 메모리 셀들을 도시한다.
도 1b에 도시된 바와 같이, 시프트가능 메모리 내의 좌 시프트는 예를 들어 어드레스 04에서의 메모리 셀로 시작하여 어드레스 07에서의 메모리 셀로 끝나는 저장된 데이터의 연속 세트를 선택하는 것을 포함한다. 시프트가능 메모리는 그 후에 도 1b의 하부에 도시되는 바와 같이, 선택된 연속 서브세트 내의 데이터 비트들를 좌로 이동시킴으로써 선택된 연속 서브세트를 좌 시프팅한다. 좌 시프트는 연속 서브세트 내의 워드들의 순서를 유지하고 연속 서브세트를 어드레스 03 및 어드레스 06 사이의 메모리 셀들 내에 놓는다. 저장된 데이터 비트들을 좌 시프팅하는 것은 상기 메모리 셀의 컨텐츠를 좌 시프팅된 연속 서브세트의 제 1 데이터 비트(즉, '0')로 대체하는 연속 서브세트의 원래의 장소의 바로 좌측으로(즉, 어드레스 03에) 메모리 셀의 컨텐츠를 중첩기록한다. 더욱이, 원래 연속 서브세트의 최종 데이터 비트를 지니고 있었던 어드레스 07에서의 메모리 셀은 'X'에 의해 표시되는 바와 같이 부정형(indeterminate)으로 렌더링된다. 일부 예들에 따르면, 어드레스 07에서의 메모리 셀은 우 시프트 전에 존재했던 데이터 비트(예를 들어, '1')의 카피를 보유하거나 좌 시프트의 결과로서 제거(예를 들어, '0'으로 세팅)될 수 있다. 일부 예들에서, 어드레스 07에서의 메모리 셀은 예를 들어 외부 소스로부터의 데이터의 삽입에 이용 가능할 수 있다.
다양한 예들에 따르면, 시프트가능 메모리는 범용 컴퓨터 시스템의 주 메모리의 일부일 수 있다. 시프트가능 메모리는 예를 들어 주 메모리를 구성하는 메모리의 서브세트를 나타낼 수 있다. 더욱이 다양한 예들에 따르면, 시프트가능 메모리는 예를 들어, 마이크로프로세서 내에서 흔히 다른 구성요소들(예를 들어, 산술 로직 유닛, 제어기 등)과 함께 통합되어 발견되는 메모리 셀들, 캐시 및 다른 상대적으로 작은 메모리 구조들과는 별개이다. 특히, 본원에서의 정의에 의한 시프트가능 메모리는 주 메모리의 일부이고, 이와 같으므로, 다양한 예들에 따르면, 범용 컴퓨터 시스템 또는 관련 프로세싱 시스템의 프로세서로부터 분리된다. 게다가, 시프트가능 메모리는 전형적으로 일부 예들에 따르면, 프로세서 내에 존재하거나 존재할 수 있는 것보다 더 큰 자릿수의 메모리 저장소를 포함한다. 예를 들어, 시프트가능 메모리는 다수의 메가바이트들 또는 심지어 기가바이트들의 메모리 저장소를 포함할 수 있는 반면에 프로세서 메모리 저장소는 수천 바이트들(예를 들어, 프로세서 레지스터들)에서 수 메가바이트들(예를 들어, L1 캐시, L2 캐시 등) 미만으로 제한될 수 있다. 일부 예들에서, 시프트가능 메모리는 주 메모리 및 주 메모리의 서브시스템의 특수 파티션일 수 있다.
더욱이, 본원에서 이용되는 바와 같이, 관사 'a'는 특허 기술분야에서 자체의 일반적인 의미, 즉 하나 이상을 가지는 것으로 의도된다. 예를 들어, 'a memory cell'은 하나 이상의 memory cell을 의미하고 이에 따라, 'the memory cell'은 본원에서 'the memory cell(s)'을 의미한다. 또한, 본원에서 '상부(top)', '하부(bottom)', '상위(upper)', '하위(lower)', '업(up)', '다운(down)', '전(front)', '후(back)', '좌(left)' 또는 '우(right)'에 대한 어떠한 언급도 본원에서는 제한하는 것으로 의도되지 않는다. 본원에서, 용어 “약(about)”이 값에 적용될 때, 이 용어는 일반적으로 상기 값을 산출하는 데 사용되는 장치의 오차 범위 내에 있음을 의미하거나, 일부 예들에서, 달리 명확하게 명시되지 않으면, 위 아래로 10%, 또는 위 아래로 5% 또는 위 아래로 1% 미만을 의미한다. 더욱이, 본원에서의 예들은 단지 예시적인 것이며 논의를 위해 제시되고 제한하기 위하여 제시되지 않는다.
도 2는 본원에서 기술되는 원리들에 따른 예에 따른 하나의 예에 따라, 행 시프팅(raw shifting)을 이용하는 시프트가능 메모리(100)의 블록도를 도시한다. 시프트가능 메모리(100)의 행 시프팅은 다양한 예들에 따르면, 시프트가능 메모리(100)의 행을 따라 데이터를 이동 또는 시프팅한다. 일부 예들에서, 행 시프팅은 행에 있는 데이터 모두를 시프팅한다. 다른 예들에서, 행 시프팅은 행에 있는 데이터의 일부만을 시프팅한다. 더욱이, 행 시프팅에 의해 시프팅되는 데이터는 시프트가능 메모리(100) 내의 데이터의 연속 서브세트이다. 특히, 다양한 예들에 따르면, 행 시프팅은 연속 서브세트의 데이터만을 시프팅하는 데 반해 연속 서브세트의 외부의 데이터는 시프팅되지 않는다.
예를 들어, 전체 행이 시프트가능 메모리(100) 내에서 행 시프팅에 의해 시프팅될 때, 연속 서브세트는 시프팅된 전체 행을 포함하고 상기 행에 있는 데이터만이 시프팅된다. 그러나, 행 시프팅이 행에 있는 데이터의 일부만을 시프팅하면, 연속 서브세트는 예를 들어 행에 있는 데이터의 나머지 부분이(즉, 그럼에도 불구하고, 연속 서브세트의 외부에 있는) 시프팅되지 않는 동안에만 시프팅된 부분을 포함할 수 있다. 또 다른 예들에서, 연속 서브세트는 단일 행 이상의 범위에 걸칠 수 있다.
일부 예들에 따르면, 시프트가능 메모리(100)는 메모리 셀들(110)의 어레이를 포함한다. 특히, 상기 어레이의 메모리 셀들(110)은 일부 예들에 따르면 복수의 행들(112)로 배열된다. 복수의 행들(112)은 예를 들어 도시된 바와 같이 인접하고 서로 실질적으로 평행하여 2-D 어레이를 형성할 수 있다. 게다가, 상기 어레이의 메모리 셀들(110)은 일부 예들에 따르면 복수의 열들(114)로 더 배열된다. 예를 들어, 열들(114)은 인접하고 서로 실질적으로 평행할 수 있다. 행들(112) 및 열들(114)은 다양한 예들에 따르면, 일반적으로 서로 교차한다. 예를 들어, 행들(112)은 도 2에 도시되는 바와 같이, 수평으로 나아갈 수 있고 열들(114)은 수직으로 나아갈 수 있다. 더욱이, 특정 메모리 셀(110)은 다양한 예들에 따르면, 시프트가능 메모리(100)의 특정한 행(112) 및 특정한 열(114) 이 둘 모두에 위치되므로 이 둘 모두의 부재이다. 더욱이, 개별 메모리 셀들(110)은 다양한 예들에 따르면, 메모리 셀(110)이 어떤 행(112)에 그리고 어떤 열(114)에 배치되는지에 따라 지정되거나 어드레싱될 수 있다.
예를 들어, 도시되는 바와 같이, 제 1 메모리 셀(110)은 제 1 행(112') 및 제 1 열(114')에 위치될 수 있다. 제 2 메모리 셀(110)은 예를 들어 제 1 행(112')에, 그러나 제 2 열(114'')에 위치될 수 있다. 다른 예에서, 제 3 메모리 셀(110)은 제 1 열(114')에, 그러나 제 2 행(112'')에 있을 수 있고 반면에 제 4 메모리 셀(110)은 제 2 열(114'')뿐만 아니라 제 2 행(112'')에 위치될 수 있다. 도시되는 바와 같이, 제공된 행(112)을 따르는 각각의 메모리 셀(110)은 복수의 열들(114) 중에서 같지 않은 열에 있다. 마찬가지로, 특정한 열(114)을 따르는 각각의 메모리 셀은 복수의 행들(112) 중에서 같지 않은 행(112)에 있다.
다양한 예들에 따르면, 각각의 열(114)은 입력 포트, 접속부 또는 경로(즉, '입력'), 그리고 출력 포트, 접속부 또는 경로(즉, '출력')를 가진다. 열(114)의 출력은 열(114)의 메모리 셀(110)로부터의 데이터를 통신 또는 전달하는 데 사용된다. 전달되는 데이터는 예를 들어 메모리 셀(110)에 의해 저장되는 데이터일 수 있다. 열(114)의 입력은 데이터를 열(114)의 메모리 셀(110)로 전달하는 데 사용될 수 있다. 예를 들어, 메모리 셀(110) 내로 전달되는 데이터는 메모리 셀(110)에 의해 수신 및 저장될 수 있다. 수신되고 저장된 데이터는 일부 예들에 따르면, 메모리 셀(110)에 의해 이미 저장된 데이터를 중첩 기록하거나 다른 방식으로 대체할 수 있다. 일부 예들에서, 입력 및 출력은 공통 또는 공유 접속부 또는 경로일 수 있다. 예를 들어, 열(114)의 메모리 셀들(110) 모두는 열(114)의 입력 및 출력 중 하나 또는 이 둘 모두의 역할을 하는 버스, 라인 또는 와이어에 접속될 수 있다. 다른 예에서, 열(114)의 입력 및 출력은 별개의 접속부들 또는 경로들이다.
특히, 도 2에 도시되는 바와 같이, 열(114)의 메모리 셀들(110)은 열(114)의 입력 및 출력 모두의 역할을 하는 비트 라인(116)에 공통으로 접속된다. 열(114)의 비트 라인(116)은 예를 들어 열(114)의 메모리 셀들(110)로부터 데이터를 판독하고(즉, 상기 메모리 셀로부터 데이터를 전달하고) 상기 메모리 셀들(110)로 데이터를 기록(상기 메모리 셀 내로 데이터를 전달)하는 데 사용될 수 있다. 일부 예들에서(도시되지 않음), 비트 라인(116)은 한 쌍의 비트 라인들을 포함한다. 상기 쌍의 비트 라인들(116)은 예를 들어, 비트 라인 상의 데이터가 차동 쌍의 비트 라인들(116) 사이의 차(예를 들어, 전압차)에 의해 표현되는 차동 쌍일 수 있다. 더욱이, 비트 라인들(116)의 쌍이 일부 예들에서 사용될 수 있을지라도, 상기 쌍은 일부 예들에 따르면, 열(114)의 입력 및 출력 이 둘 모두의 역할을 할 수 있다(예를 들어, SRAM에 관련하여 아래를 참조할 것).
일부 예들에 따르면, 특정한 시간에, 열(112)의 단일 메모리 셀(110)만이 열(114)의 비트 라인(116)에 능동적으로 접속되고 반면에 열(114)의 다른 메모리 셀들(110)은 이 특정한 시간에 실질적으로 접속 해제된다. 스위치 역할을 하는 트랜지스터는 예를 들어, 비트 라인(116)과 접속 및 접속 해제하도록 할 수 있다. 메모리 셀(110)에 액세스되거나 메모리 셀(110)이 가동될 때, 트랜지스터 스위치는 메모리 셀(110)을 비트 라인(116)에 접속시키기 위해 턴온(turn on)된다. 메모리 셀(110)을 비트 라인에 접속함으로써 메모리 셀(110)에 저장된 데이터가 비트 라인(116)으로 전달되고(즉, 저장된 데이터는 비트 라인(116) 상에 '배치'된다) 비트 라인(116)으로부터의 데이터가 메모리 셀 내에 저장되도록 메모리 셀 내로 전달된다.
데이터를 메모리 셀(110)로부터 비트 라인(116)으로 전달하는 것은 본원에서 흔히 데이터를 '판독'하거나 '판독 동작'을 수행하는 것으로 칭해지고 반면에 저장을 위해 데이터를 비트 라인(116)으로부터 메모리 셀(110)로 전달하는 것은 본원에서 흔히 데이터를 '기록'하거나 '기록 동작'을 수행하는 것으로 칭해진다. 일부 예들에서(도시되지 않음), 기록 인에이블(enable) 제어 라인은 데이터가 비트 라인(116)으로 전달되는지(판독) 또는 비트 라인(116) 상의 데이터가 메모리 셀(110)로 전달되고 이 메모리 셀(110)에 의해 저장되는지(기록)를 제어하는 데 사용된다. 기록 인에이블은 다양한 예들에 따르면, 메모리 셀들(110) 자체 내에 구축되는 기능일 수 있거나(예를 들어, 도시되는 바와 같이) 열(114)에 의해 제공되는 기능일 수 있다.
일부 예들에서, 행(112)의 메모리 셀들(110)은 워드 라인(118)에 공통으로 접속된다. 일부 예들에서, 워드 라인(118)으로의 접속은 실질적으로 행(112)을 정의한다. 도 2에 도시되는 바와 같이, 특정한 워드 라인(118)이 특정한 행(118)의 메모리 셀들(110) 모두에 액세스한다. 더욱이, 각각의 행(112)은 예를 들어 다른 행들(112)에 액세스하지 않고 개별 행들(112)에 액세스하는 것이 가능하도록 별개의 워드 라인(118)을 가진다. 특정한 행(112)의 워드 라인(118)을 어서팅(asserting)함으로써(예를 들어, 로직을 '하이(high)'로 세팅함으로써), 상기 행(112)에 접속되는 메모리 셀들(110)에 액세스되거나 상기 메모리 셀들(110)이 가동된다. 행(112)의 메모리 셀들(110)에 액세스하거나 이 메모리 셀들을 가동시키는 것은 예를 들어 행(112)의 메모리 셀들(110) 내에 이전에 저장된 데이터를 판독하거나 행(112)의 메모리 셀들(110)에 데이터를 기록하기 위해서 사용될 수 있다.
일부 예들에서, 메모리 셀(110)은 정적 랜덤 액세스 메모리(static random access memory; SRAM) 메모리 셀(200)을 포함한다. 도 3a는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 예시 SRAM 메모리 셀(200)의 개략도를 도시한다. 도 3a에 도시되는 SRAM 메모리 셀(200)은 6개의 트랜지스터들(202)을 포함한다. SRAM 메모리 셀(200)은 트랜지스터들(202a, 202b)의 쌍을 통해 차동 비트 라인들(116)의 쌍과 계면하도록 구성된다. 차동 비트 라인들(116)은 도시되는 바와 같이, 신호들(dout
Figure pct00001
)을 차동 출력들로서 제공하거나 신호들(din
Figure pct00002
)을 차동 입력들로서 SRAM 메모리 셀(200)로 제공한다. 트랜지스터들(202a, 202b)의 쌍의 게이트들은 워드 라인 신호(W)에 의해 구동될 수 있는 워드 라인(118)에 접속된다. SRAM 메모리 셀(200)은 도시된 바와 같이, 전압원(VDD)의로의 접속에 의해 전력을 공급받는다.
워드 라인 신호(W)를 어서팅함으로써 트랜지스터들(202a, 202b)의 쌍이 가동되어 SRAM 메모리 셀(200)이 비트 라인들(116)에 접속된다. 특히, 워드 라인(118) 상에서 로직 '하이'를 표현하는 워드 라인 신호(W)는 일부 예들에 따르면, 트랜지스터들(202a, 202b)의 쌍을 턴온하거나 가동시킨다. 쌍의 트랜지스터들(202a, 202b)은 SRAM 메모리 셀(200)의 나머지 4개의 트랜지스터들(202)을 비트 라인들(116)에 접속시키기 위해 가동될 때 스위치들의 하나의 쌍 역할을 한다. 가동되는 트랜지스터들(202a, 202b)에 의해 제공되는 접속에 의해서, SRAM 메모리 셀(200)의 나머지 4개의 트랜지스터들(202)에 의해 저장되는 데이터가 비트 라인들(116)로 전달되는 것이 가능하거나 또는 비트 라인들(116) 상의 데이터(예를 들어 전압)가 상기 트랜지스터들(202)에 의해 저장되기 위해 SRAM 메모리 셀(200)의 나머지 4개의 트랜지스터들(202)로 전달되는 것이 가능하다.
일부 예들에서, 메모리 셀(110)은 동적 랜덤 액세스 메모리(static random access memory; DRAM) 메모리 셀(210)을 포함한다. 도 3b는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 예시 DRAM 메모리 셀(210)의 개략도를 도시한다. DRAM 메모리 셀(210)은 도시되는 바와 같이, 트랜지스터(212) 및 커패시터(214)를 포함한다. 워드 라인(118)은 워드 라인(118)이 어서팅될 때 트랜지스터를 가동시키기 위해 트랜지스터(212)의 게이트에 접속된다. 특히, 트랜지스터(212)는 워드 라인(118) 상에서 워드 라인 신호(W)를 어서팅함으로써 전압이 트랜지스터(212)의 게이트에 인가될 때 커패시터를 열(114)의 비트 라인(116)에 접속시키는 스위치 역할을 한다. 가동된 트랜지스터(212)에 의해 제공되는 접속으로 인해 DRAM 메모리 셀(210) 내에 저장된 데이터(예를 들어, 커패시터(214)에 대한 전압)가 트랜지스터(212)를 통해 비트 라인들로 전달되는 것이 가능하고 비트 라인들(116) 상의 데이터(예를 들어, 전압)가 DRAM 메모리 셀에 저장되기 위해 상기 DRAM 메모리 셀(210)의 커패시터(214) 내로 전달되는 것이 가능하다.
도 2를 다시 참조하면, 시프트가능 메모리(100)는 시프트 로직(120)을 더 포함한다. 도시되는 바와 같이, 시프트 로직(120)은 열들(114) 사이에 접속된다. 예를 들어, 시프트 로직(120)은 시프트가능 메모리(100)의 제 1 열(114') 및 제 2 열(114'') 사이에(예를 들어, 열(114) 및 열(114') 사이에 또는 열(114) 및 열(114'') 사이에) 접속된다. 일부 예들에 따르면, 시프트가능 메모리(100)는 열들(114)의 쌍들 또는 짝수의 세트들 사이에 복수의 접속들을 제공하는 시프트 로직(120)을 포함할 수 있다. 예를 들어, 도 2의 시프트 로직(120)은 제 1 열(114') 및 제 2 열(114'') 사이의 상술한 접속 외에 열들(114)의 다른 쌍들 사이에 접속을 제공한다. 그러나, 이 다른 접속들은 제 1-대-제 2 열 접속과 실질적으로 유사한 방식으로 기능할 수 있으므로, 본원에서의 논의는 간소화를 위해 일반성을 잃지 않고 제 1-대-제 2 열 접속으로 한정될 수 있다.
시프트 로직(120)은 데이터를 제 1 열(114')의 출력으로부터 제 2 열(114'')의 입력으로 시프팅하도록 구성된다. 예를 들어, 도 2에 도시되는 시프트 로직(120)은 데이터를 제 1 열(114')의 비트 라인(116)으로부터 제 2 열(114'')의 비트 라인(116)으로 시프팅하도록 구성될 수 있다. 다양한 예들에 따르면, 시프팅된 데이터는 제 1 열(114')의 메모리 셀(110)에 의해 복수의 행들의 선택된 행(112) 내에 제공된다. 선택된 행(112)은 예를 들어 상기 행(112)의 워드 라인(118)을 어서팅함으로써 선택될 수 있다. 시프팅된 데이터는 다양한 예들에 따르면, 메모리 셀(110)에 의해 수신되고 이 메모리 셀(110)에 의해 제 2 열(114'')의 선택된 행(112) 내에 저장된다.
일부 예들에서, 시프팅된 데이터는 제 1 열(114')의 선택된 행(112)에서의 메모리 셀(110)에 의해 출력된 후에, 그러나 시프트 로직(120)에 의해 제 2 열(114'')의 선택된 행(112)에서의 메모리 셀(110)에 제공되기 전에 래칭(latching)되거나 그렇지 않으면 임시로 저장될 수 있다. 래칭은 예를 들어 단일 비트 라인(116)(예를 들어 도 2에 도시되는 바와 같이)에 걸친 데이터의 출력 및 입력을 가능하게 하기 위해 사용될 수 있다. 특히, 래칭 또는 시프팅된 데이터의 등가의 임시 저장은 다양한 예들에 따르면, 비트 라인(116)을 사용하여 데이터를 동시에 판독 및 기록하려고 할 때 발생할 수 있는 충돌들을 방지할 수 있다. 예를 들어, 메모리 셀들(110)로부터의 입력 및 출력 모두에 대해 동일한 비트 라인(116)이 사용될 때(예를 들어 별개의 입력 및 출력 채널들을 가지는 메모리 셀들과는 대조적인), 제 1 열 메모리 셀(110)에 의해 출력되는 시프팅된 데이터가 래칭될 수 있고 반면에 제 2 열 메모리 셀(110)(예를 들어 또한 시프팅된 데이터를 다른 메모리 셀에 제공해왔던)은 시프팅된 데이터를 수신 및 저장하도록 준비된다. 일단 제 2 열 메모리 셀(110)이 준비되면, 예를 들어 래칭되는 시프팅된 데이터가 해제되고 시프트 로직(120)에 의해 제 2 열 메모리 셀(110)에 인가된다.
일부 예들에서, 시프트 로직(120)은 시프트가능 메모리(100)에 필수적인 회로이다. 예를 들어, 시프트 로직(120)은 시프트가능 메모리(100)의 회로 내에 구축되는 복수의 시프트 회로들로서 실현될 수 있다. 시프트 회로들은 예를 들어 시프트가능 메모리(100)의 집적 회로에 필수적일 수 있다. 복수의 시프트 회로들은 제 1 열(114')에 의해 출력되는 데이터를 제 2 열(114'')로 시프팅하기 위해 제 1 열(114') 비트 라인(116) 및 제 2 열(114'') 비트 라인(116) 사이에 접속될 수 있다. 시프팅된 데이터는 예를 들어 시프트 회로들에 의해 시프팅될 때, 제 2 열(114'')의 선택된 행(112)에서의 메모리 셀(110)에 저장될 수 있다. 일부 예들에서, 시프트 로직(120)은 시프팅된 데이터를 임시로 저장하기 위한 래치를 포함할 수 있다. 다른 예들에서, 데이터를 판독하고 시프팅하는 데 웨이브-파이프라이닝(wave -pipelining)이 사용될 때와 같이, 비트 라인(116) 상의 전용 래치가 제외될 수 있다.
일부 예들에서, 제 1 열(114') 및 제 2 열(114'')은 서로 인접하고 있다. 예를 들어, 제 1 열(114') 및 제 2 열(114'')은 도 2에서 서로 인접한 것으로 도시된다. 제 1 및 제 2 열(114', 114'')이 서로 인접할 때, 시프트가능 메모리(100)에 의한 데이터의 시프팅은 예를 들어 결과적으로 시프트당 단일 데이터 비트(단일 메모리 장소)만큼 선택된 행(112) 내의 데이터를 이동시킬 수 있다. 하나 이상의 비트들의 시프트들은 일부 예들에 따르면, 시프트를 반복함으로써 달성될 수 있다. 예를 들어, 하나의 데이터 워드(8 데이터 비트들)의 시프트 거리는 8개의 1-비트 시프트들에 의해 제공될 수 있다.
다른 예들에서, 하나 이상의 데이터 비트의 시프트 거리를 만들기 위해 제 1 및 제 2 열들(114', 114'')은 하나 이상의 열들에 의해 분리될 수 있다. 특히, 제 1 열(114') 및 제 2 열(114'') 사이의 열들의 수는 일부 예들에 따르면, 0부터(예를 들어 인접한 열들(114)의 경우) 시프트가능 메모리(100)의 열들(114)의 총 수보다 더 적은 수의 범위를 가진다. 예를 들어, 제 1 열(114') 및 제 2 열(114'') 사이의 간격은 1 데이터 비트 또는 2, 3 4 등의 데이터 비트들(도시되지 않음)의 시프트 거리를 나타낼 수 있다. 더욱이, 시프트 거리는 선택 가능할 수 있다. 구체적으로, 시프트 로직(120)은 제 1 열(114') 및 제 2 열(114'') 사이의 열들(114)의 수를 선택하는 것을 제공할 수 있다. 열들(114)의 선택 가능한 수는 예를 들어 0부터 시프트가능 메모리(100) 내의 열들(114)의 총 수보다 작은 수의 범위를 가진다(상술한 바와 같다).
일부 예들에서, 시프트의 방향은 좌 및 우 시프트 중 하나 또는 이 둘 모두를 제공할 수 있다. 특히, 시프트 로직(120)은 선택된 행(112)을 따라 선택된 행의 시단(예를 들어 좌단)으로 그리고 선택된 행(112)의 종단(예를 들어 우단)으로 향하는 것 중 하나의 방향으로 데이터를 시프팅하도록 구성될 수 있다. 도 2에서 데이터의 방향을 도시하는 화살표들은 좌 시프트 및 우 시프트 모두를 제공하기 위한 시프트 로직(120)의 케이퍼빌리티(capability)를 도시한다. 일부 예들에서, 시프트 로직(120)의 시프트 방향은 좌 시프트 또는 우 시프트로서 고정된다. 다른 예들에서, 시프트 방향은 원 위치에서 선택 가능할 수 있다. 예를 들어, 시프트 로직(120)은 무엇보다도, 시프트 방향(즉, 좌 시프트 또는 우 시프트)를 결정하는 제어 입력을 가질 수 있다.
일부 예들에서, 시프트 로직(120)은 멀티플렉서 회로를 포함한다. 멀티플렉서는 예를 들어 데이터를 제 1 열(114')로부터 제 2 열(114'')로 선택적으로 라우팅하도록 접속될 수 있다. 도 4a는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 멀티플렉서(122)를 포함하는 시프트 로직(120)의 개략도를 도시한다. 도시되는 바와 같이, 멀티플렉서(122)는 데이터를 출력 또는 제 1 열(114')의 비트 라인(116)으로부터 수신하는 입력을 가진다. 예를 들어, 멀티플렉서(122)의 입력은 제 1 열(114')의 감지 증폭기(130)(후술됨)의 출력에 접속될 수 있다. 멀티플렉서(122)의 다른 입력은 예를 들어 외부 소스로부터 데이터를 수신하기 위해 시프트가능 메모리(100)의 외부 데이터 포트에 접속될 수 있다. 더욱이, 도시되는 바와 같이, 멀티플렉서(122)의 출력은 데이터를 입력 또는 제 2 열(114'')의 비트 라인(116)으로 지향하도록 접속된다. 예를 들어, 멀티플렉서(122)의 출력은 제 2 열(114'')의 비트 라인 구동기(140)(후술됨)의 입력을 통해 데이터를 제 2 열(114'')의 비트 라인(116)으로 지향하도록 접속될 수 있다.
도시되는 바와 같이, 멀티플렉서(122)는 외부 소스의 데이터(din) 및 제 1 열(114')의 비트 라인(116)에 의해 제공되는 데이터 사이에서 선택하도록 구성된다. 더욱이, 멀티플렉서(122)는 제 2 열(114'')의 선택된 행(112)(도 4a에 도시되지 않음)에서의 메모리 셀(110) 내의 저장을 위해 선택된 데이터를 제 2 열(114'')의 입력으로(예를 들어, 비트 라인(116)으로) 라우팅하도록 구성된다.
일부 예들에 따르면, 제 1 열(114')은 제 2 열(114'')보다 선택된 행(112)의 시단에 더 근접해 있다. 이 예들에서, 멀티플렉서(122)에 의해 구현되는 시프트는 우 시프트를 구성한다. 다른 예들에서, 제 1 열(114')은 제 2 열(114'')보다 선택된 행의 종단(예를 들어 우 종단)에 더 근접해 있어서, 멀티플렉서(122)에 의해 구현되는 시프트는 좌 시프트를 구성한다. 멀티플렉서(122)의 제어(즉, 입력이 선택되는)는 도 4a에 도시되는 바와 같이, 시프트 신호에 의해 제공된다. 제 1 및 제 2 열들(114' 및 114'')에 의해 출력되는 데이터는 또한 예를 들어, 외부 사용을 위해 출력(dout)에서 제공될 수 있다.
도 4b는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 멀티플렉서(122)를 포함하는 시프트 로직(120)의 개략도를 도시한다. 특히, 도 4b에 도시되는 바와 같이, 멀티플렉서(122)는 3개의 입력들을 가진다. 제 1 입력은 상술한 바와 같이, 제 1 열(114')의 비트 라인(116)으로부터의 데이터를 라우팅하도록 접속된다. 마찬가지로, 제 2 입력은 상술한 바와 같이, 시프트가능 메모리(100)의 외부 데이터 포트(예를 들어, din)에 접속된다. 멀티플렉서(122)의 제 3 입력은 도 4b에 도시되는 바와 같이, 제 1 열(114')의 측과 대향하는 제 2 열(114'')의 측에서 제 3 열(114''')의 비트 라인의 데이터를 수신하도록 접속된다. 예를 들어, 제 3 입력은 제 3 열(114''')의 감지 증폭기(130)의 출력에 접속될 수 있다.
도시되는 바와 같이, 예를 들어, 멀티플렉서(122)에 의한 제 1 입력의 선택은 데이터의 우 시프트를 제공할 수 있고(예를 들어, 데이터를 우로 이동시킨다) 반면에 제 3 입력의 선택은 선택된 행(112)(도시되지 않음)을 따르는 데이터의 좌 시프트를 야기할 수 있다(예를 들어 데이터를 좌로 이동시킨다). 시프트 신호는 도 4b에 도시되는 바와 같이, 3개의 입력들 사이에서 선택하는 것이 가능하도록 라인들의 쌍에 의해 제공될 수 있다.
일부 예들에서, 시프트 로직은 래치(latch)(124)를 더 포함한다. 도 4a 및 도 4b에 도시되는 바와 같이, 래치(124)는 멀티플렉서(122) 앞에서 비트 라인(116)을 따라 위치된다. 래치(124)는 일부 예들에 따르면, 판독 동작 중에 데이터 출력을 비트 라인(116) 상에 임시로 저장할 수 있다. 시프팅 시에, 래치(124)는 일부 예들에 따르면, 비트 라인(116) 상의 데이터를 다음 스테이지의 멀티플렉서(122)로 통과시킬 수 있다. 시프트 신호는 예를 들어, 도시되는 바와 같이, 래치(124)를 제어하는 데 사용될 수 있다.
도 2를 다시 참조하면, 시프트가능 메모리(100)는 감지 증폭기(130) 및 비트 라인 구동기(140) 중 하나 또는 이 둘 모두를 더 포함한다. 도시되는 바와 같이, 감지 증폭기(130) 및 비트 라인 구동기(140)는 메모리 셀들(110)의 복수의 행들(112) 및 시프트 로직(120) 사이에 위치된다. 감지 증폭기(130)는 예를 들어 열(114)의 메모리 셀들(110) 및 열(114)에 접속되는 다른 구성요소들(예를 들어 시프트 로직(120)) 사이의 출력 인터페이스 역할을 할 수 있다. 비트 라인 구동기(140)는 예를 들어, 다른 구성요소들(예를 들어, 시프트 로직(120)) 및 열(114)의 메모리 셀들(110) 사이의 입력 인터페이스 역할을 할 수 있다.
다양한 예들에 따르면, 감지 증폭기(130)는 선택된 행의 메모리 셀(110)에 의해 발생되는 신호를 증폭한다. 예를 들어, 감지 증폭기(130)는 가동될 때 메모리 셀(110)에 의해 발생되는 전압을 증폭할 수 있고 증폭된 전압을 열(114)의 출력으로서 제공할 수 있다. 이 전압을 예를 들어, 시프트 로직(120), 시프트가능 메모리(100)와 계면하는 다른 구성요소들 및 시프트가능 메모리(100) 자체의 다른 회로 소자 중 하나 이상과 호환 가능한 전압 레벨로 증폭될 수 있다.
일부 예들에서(예를 들어 DRAM), 감지 증폭기(130)는 또한 증폭된 신호를 로직 레벨(예를 들어 로직 '0' 또는 '1')로 래치(latch)할 수 있다. 예를 들어, DRAM 메모리 셀의 증폭된 신호는 DRAM 메모리 셀의 전압(예를 들어 커패시터 상의 전압)이 시간이 갈수록 저하되는 때조차도 열(114)로부터 안정된 출력을 제공하도록 래치될 수 있다. 센스 증폭기(130)에 의해 제공되는 래치된 출력은 또한, 예를 들어 데이터가 제 2 열(114'')에 기록될 수 있을 때까지 제 1 열(114')로부터 시프팅된 데이터를 보유하도록 작용할 수 있다. 일부 예들에 따르면, 삼상 버퍼(도시되지 않음) 또는 실질적으로 등가의 디바이스는 감지 증폭기(130)를 다운스트림의 구성요소들(예를 들어 비트 라인 구동기)과 격리하기 위해 감지 증폭기(130)의 출력 상에서 사용될 수 있다. 삼상 버퍼는 예를 들어 인에이블 신호(enable signal) 역할을 하는 시프트 신호에 의해 제어될 수 있다.
다양한 예들에 따르면, 비트 라인 구동기(140)는 열의 메모리 셀들(110)에 충분한 입력 신호 레벨을 제공하기 위해 열(114)의 비트 라인(116)을 구동한다. 예를 들어, 비트 라인 구동기(140)는 데이터가 메모리 셀(110)에 의해 저장될 수 있을 때 선택된 행(112)의 메모리 셀(110)의 상태를 변경하는 데 충분한 전압을 비트 라인(116)에 공급할 수 있다. 일부 예들에서, 시프트 로직(120)은 제 1 열(114')의 비트 라인(116)의 감지 증폭기(130)의 출력에서 발생되는 데이터를 제 2 열(114'')의 비트 라인(116)의 비트 라인 구동기(140)의 입력으로 선택적으로 라우팅하도록 접속되는 멀티플렉서(122)(예를 들어 도 4a, 도 4b를 참조할 것)를 포함한다. 멀티플렉서(122)는 예를 들어 데이터가 시프팅되어야 할 때 데이터를 선택적으로 라우팅하도록 구성될 수 있다.
도 3a를 참조하면, 복수의 SRAM 메모리 셀들(200)을 포함하는 각각의 열(114)은 감지 증폭기(130) 및 전압 등화기 회로(204)를 포함할 수 있다. 일부 예들에서, 전압 등화기 회로(204)는 감지 증폭기(130)의 일부로서 포함될 수 있다. 도 3a에 도시되는 감지 증폭기(130)는 예를 들어 구동 전압들(SAN 및 SAP)을 제공하는 감지 증폭기 구동기(도시되지 않음)에 의해 구동될 수 있다. 전압 등화기 회로(204)는 도시된 바와 같이 신호(EQ)에 접속되고 이 신호에 의해 구동되고 전압(VDD/2)에 의해 전력을 공급받는다. 더 부가적으로, 도시되는 바와 같이, 각각의 열(114)은 한 쌍의 비트 라인 구동기들(140)을 포함할 수 있다. 비트 라인 구동기들(140)은 한 쌍의 트랜지스터들(208)을 통해 비트 라인들(116)에 접속될 수 있다. 트랜지스터(208)는 예를 들어 기록 인에이블(write enable; WE) 신호에 의해 가동될 수 있다. 비트 라인 구동기들(140)은 예를 들어 차동 쌍의 입력 신호들(din
Figure pct00003
)로 비트 라인들(116)을 구동하도록 구성될 수 있다.
또 다시 도 2를 참조하면, 시프트가능 메모리(100)는 일부 예들에 따르면, 제어기(150)를 더 포함하는 시스템 내에 제공된다. 제어기(150)는 다양한 예들에 따르면, 행들(112)과 연관되는 워드 라인들(118)을 사용하여 행들 중 하나 또는 둘 모두를 선택하고 시프트 로직(120)을 제어하여 시프팅을 가능하게 한다. 예를 들어, 제어기(150)는 선택되고 시프팅될 행(112)의 어드레스를 수신하는 디코더를 포함할 수 있다. 행 어드레스는 예를 들어 시프트가능 메모리(100) 외부의 시스템(예를 들어 프로세서)으로부터 수신될 수 있다. 제어기(150)는 일부 예들에 따르면, 시프트 로직(120)을 더 제어할 수 있다. 예를 들어, 제어기(150)는 시프트 신호를 제공할 수 있다(도 4a 및 도 4b에 도시됨). 제어기(150)는 예를 들어 선택된 행(112) 내의 데이터의 일부분만의 시프팅에 영향을 주기 위해 시프트 로직(120)의 일부분들을 선택하는 다른 디코더를 더 포함할 수 있다. 제어기(150)는 다양한 예들에 따르면, 시프트 방향(예를 들어, 좌 시프트 대 우 시프트), 시프트 거리 및 시프트가 발생해야 하는지의 여부 중 하나 또는 둘을 제어하도록 더 구성될 수 있다.
다양한 예들에 따르면, 시프트가능 메모리(100)는 데이터 워드-크기 시프트 거리들에 따라 데이터를 시프팅하도록 구성될 수 있다. 예를 들어, 시프트가능 메모리(100)는 8-비트, 16-비트, 32-비트, 64-비트 등 중에서 하나인 데이터 워드 크기에 따라 데이터를 시프팅하도록 구성될 수 있다. 데이터 워드 크기는 예를 들어 시프트가능 메모리(100)를 사용하는 시스템에 의해 정의될 수 있다. 일부 예들에 따르면, 데이터 워드들은 시프트가능 메모리(100)의 행들(112)을 따라 순차적으로 저장된다. 이 예들에서, 데이터 워드-크기의 시프트는 예를 들어 행(112)의 데이터 비트들을 시프팅하는 로직을 데이터 워크 크기와 동일한 거리로 시프팅함으로써 달성될 수 있다.
도 5a는 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 시프트가능 메모리(100)에서의 워드-크기 시프팅의 하나의 예의 개략적인 블록도를 도시한다. 도시된 바와 같이, 메모리 셀들(110)의 행(112)에서의 데이터 비트들은 시프트 동안 시프트 로직에 의해 8-비트 데이터 워드(예를 들어, '10110101')에 대응하여 8 비트들(즉, 8개의 연속 메모리 장소들)만큼 시프팅된다. 예를 들어, 데이터 비트들의 연속 세트들에 대해, 행(112)의 제 1 메모리 장소에서의 데이터 비트는 시프트 로직(120)에 의해 8번째 장소로 시프팅되고, 제 2 메모리 장소에서의 데이터 비트는 시프트 로직(120)에 의해 9번째 메모리 장소로 시프팅될 수 있고, 기타 등등이다. 제 1 열(114')을 제 1 열(114')로부터 8개의 열들(114)만큼 변위된 제 2 열(114”)과 연결시키는 시프트 로직(120)은 예를 들어 도 5a에 도시되는 시프트를 달성하기 위하여 사용될 수 있다. 이 시프트는 도 5a에서의 곡선의 화살표들을 사용하여 도시된다.
도 5b는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 시프트가능 메모리(100)에서의 워드-크기 시프팅의 하나의 예의 개략적인 블록도를 도시한다. 특히 도 5b에 도시되는 바와 같이, 데이터 워드는 복수의 행들(112)에 걸쳐 분포된다. 더욱이, 데이터가 시프트가능 메모리(100)에 의해 시프팅될 때, 도 5b에 도시된 복수 개의 행들(112) 모두가 실질적으로 동시인 방식으로 시프팅된다. 복수의 행들(112)은 예를 들어, 시프트가능 메모리(100)의 별개의 실질적으로 평행한 어레이들(예를 들어, 3-D 어레이) 내에 있을 수 있다. 데이터 워드들의 데이터 비트들은 도 5b에서 곡선의 화살표들에 의해 도시되는 바와 같이, 단일 메모리 장소에 의해(예를 들어, 하나의 메모리 셀(110)에 의해) 행들(112) 각각을 따라 시프팅된다. 그러나, 이 시프트는 결과적으로 데이터 워드를 메모리 내의 전체 워드-크기 거리만큼 이동시키는데, 왜냐하면 데이터 워드가 실질적으로 동시에 시프팅되는 다수의 시프팅된 행들(112)에 걸쳐 분포되어 있기 때문이다. 제 1 열(114')을 인접한 제 2 열(114”)과 연결시키는 시프트 로직(120)은 예를 들어 도 5b에 도시된 시프트를 달성하는 데 사용될 수 있다. 일부 예들에서, 데이터는 시프팅을 제어하기 위해 상이한 입도(granularity)로 인터리빙(interleaving)되는 데이터 블록들로서 저장될 수 있다. 더욱이, 도 5b에 도시되는 바와 같이, 데이터의 연속 서브세트는 복수의 행들(112)의 각각에 대해 하나의 연속 서브세트인, 복수의 연속 서브세트들을 포함한다.
도 5c는 본원에서 기술되는 원리들에 따른 다른 예에 따라, 시프트 거리를 동적으로 제어하기 위해 리매핑을 사용하는 시프트가능 메모리(100)에서의 시프팅의 하나의 예의 개략적인 블록도를 도시한다. 특히, 리매핑은 일부 예들에 따르면, 고정된 물리적 시프트 거리를 가지는 시프트가능 메모리(100)에서 시프트 거리를 동적으로 변경하는 데 사용될 수 있다. 예를 들어, 시프트가능 메모리(100)는 도 5c에서 곡선의 화살표들로 표시되는 바와 같이, 하나의 메모리 장소의 고정된 물리적 시프트 거리를 제공할 수 있다. 순차적인 데이터의 세트가 단일 제 1 어레이의 행(112)에 저장되면, 시프트가능 메모리(100)에 의해 제공되는 시프트 거리는 고정된 물리적 시프트 거리(예를 들어 1의 거리)와 동일하다. 그러나, 데이터가 리매핑되고 어레이들의 쌍에 저장되면, 메모리 장소의 고정된 물리적 거리만큼의 시프팅은 예를 들어 2의 '논리적' 시프트 거리를 제공할 수 있다.
도 5c에 도시되는 바와 같이, 홀수 번호가 매겨진 데이터 비트들이 제 1 어레이(502)의 행(112)에 그리고 짝수 번호가 매겨진 비트들이 제 2 어레이(504)의 대응하는 행(112) 내에 위치되도록 순차적인 데이터의 세트(예를 들어, '1', '2', '3' 등으로 번호가 매겨진)가 리매핑되면, 두 메모리 장소들의 논리적 시프트 거리는 하나의 메모리 셀의 물리적 시프트에 의해 제공된다. 리매핑은 추가 어레이들(도시되지 않음)을 추가하고 순차적인 데이터의 세트를 추가된 추가 어레이들에 걸쳐 분포시킴으로써 논리적 시프트 거리들을 제공하는 데 사용될 수 있다. 더욱이, 리매핑은 고정된 물리적 시프트 거리를 가지고 배치된 시프트가능 메모리(100)에서 시프트 거리를 변경하도록 동적으로 사용될 수 있다. 선택 가능한 리매핑은 예를 들어 어레이들을 제어하는 어드레스 라인들(도시되지 않음) 상의 멀티플렉서들에 의해 제공될 수 있다.
도 6은 본원에서 기술되는 원리들에 따른 하나의 예에 따라, 시프트가능 메모리에서 데이터를 시프팅하는 방법(300)의 흐름도를 도시한다. 도시된 바와 같이, 데이터를 시프팅하는 방법(300)은 시프트가능 메모리의 메모리 셀들의 행을 선택(310)하는 것을 포함한다. 다양한 예들에 따르면, 시프트가능 메모리의 메모리 셀들은 복수의 행들 및 복수의 열들로서 배열된다. 일부 예들에 따르면, 시프트가능 메모리 자체뿐만 아니라 시프트가능 메모리의 메모리 셀들은 상술한 각각의 메모리 셀(110) 및 시프트가능 메모리(100)와 실질적으로 유사하다.
데이터를 시프팅하는 방법(300)은 시프트가능 메모리의 복수의 열들 중의 제 1 열로부터 제 2 열로의 시프트 로직을 사용하여 데이터를 열들 사이에서 통신하는 것(320)을 더 포함한다. 일부 예들에서, 시프트 로직은 제 1 열의 비트 라인에서 제 2 열의 비트 라인 사이을 접속하고 이들 사이에서 데이터를 시프팅한다. 통신된 데이터는 예를 들어 선택된 행에 있는 제 1 열의 메모리 셀에 의해 제공되는 데이터일 수 있다. 일부 예들에 따르면, 시프트 로직은 시프트가능 메모리(100)에 관하여 위에 기술된 시프트 로직(120)과 실질적으로 유사할 수 있다.
데이터를 시프팅하는 방법(300)은 통신된 데이터를 선택된 행에 있는 제 2 열의 메모리 셀 내에 저장하는 것(330)을 더 포함한다. 통신된 데이터를 저장하는 것(330)은 예를 들어, 메모리 셀의 동작 특성과 부합하는 방식으로 메모리 셀에 의해 달성될 수 있다. 통신된 데이터는 다양한 예들에 따르면, 제 1 열 메모리 셀로부터 제 2 열 메모리 셀로 선택된 행을 따라 시프팅된다.
일부 예들에서(예시되지 않음), 데이터를 통신(320)하는 것은 제 1 행의 메모리 셀로부터의 신호를 증폭하는 것을 포함한다. 증폭은 예를 들어 감지 증폭기의 출력에서 데이터를 산출하도록 감지 증폭기를 사용하여 달성될 수 있다. 일부 예들에 따르면, 감지 증폭기는 시프트가능 메모리(100)에 관하여 상술한 감지 증폭기(130)와 실질적으로 유사할 수 있다.
일부 예들에서, 데이터를 통신하는 것(320)은 감지 증폭기의 출력으로부터 제 2 열의 비트 라인 구동기의 입력으로 데이터를 선택적으로 전송하는 것을 더 포함한다. 데이터를 선택적으로 전송하는 것은 예를 들어, 데이터가 시프팅될 때 시프트가능 메모리의 시프트 로직에 의해 수행될 수 있다. 일부 예들에서, 데이터를 통신하는 것(320)은 선택된 행에 있는 제 2 열의 메모리 셀 내에 데이터를 저장하는 것을 가능하게 하는 신호를 생성하기 위해 비트 라인 구동기를 사용하여 제 2 열의 비트 라인을 구동하는 것을 더 포함한다.
그러므로, 행 시프팅을 이용하는 시프트가능 메모리, 시프트가능 메모리 시스템 및 시프트가능 메모리에서 데이터를 시프팅하는 방법의 예들이 기술되었다. 상술한 예들은 단지 본원에서 기술되는 원리들을 나타내는 많은 특정한 예들 중 일부를 예시하는 것이 이해되어야만 한다. 명확하게, 당업자는 다음의 청구항들에 의해 정의되는 바와 같은 범위를 벗어나지 않는 많은 다른 배열들을 가능하게 창안할 수 있다.

Claims (15)

  1. 복수의 행(row)들 및 복수의 열(column)들로서 배열되는 메모리 셀들과,
    제 1 열의 출력으로부터 제 2 열의 입력으로 데이터를 시프팅(shifting)하는 시프트 로직(shift logic)을 포함하고, 시프팅된 데이터는 선택된 행에 있는 상기 제 1 열의 메모리 셀에 의해 제공되고 상기 시프팅된 데이터는 상기 제 2 열의 선택된 행에 있는 메모리 셀에 의해 수신 및 저장되고,
    상기 시프트 로직은 상기 선택된 행을 따라 데이터를 시프팅하는 것을 가능하게 하는 것인
    시프트가능 메모리.
  2. 제 1 항에 있어서,
    상기 제 1 열 및 상기 제 2 열은 서로 인접하고 상기 선택된 행에 있는 데이터 모두는 상기 시프트 로직에 의해 시프팅되는
    시프트가능 메모리.
  3. 제 1 항에 있어서,
    상기 제 1 열과 상기 제 2 열 사이의 열들의 수는 0과 상기 시프트가능 메모리의 열들의 총 수보다 적은 수 사이에서 선택 가능한
    시프트가능 메모리.
  4. 제 1 항에 있어서,
    상기 시프트 로직은 상기 선택된 행의 시작으로 향하는 것 및 상기 선택된 행의 끝으로 향하는 것 중 하나인 방향으로 상기 선택된 행을 따라 상기 데이터를 시프팅하는 것인
    시프트가능 메모리.
  5. 제 1 항에 있어서,
    상기 시프트 로직은, 상기 제 1 열의 출력에 접속되는 입력과 상기 제 2 열의 입력에 접속되는 멀티플렉서 출력을 가지는 멀티플렉서를 포함하고, 상기 멀티플렉서는 상기 멀티플렉서의 다른 입력으로부터의 데이터 및 상기 제 1 열 출력 상의 데이터 사이에서 선택하고 또한 상기 멀티플렉서는 상기 선택된 데이터를 상기 제 2 열의 선택된 행에 있는 메모리 셀에 저장하기 위해 상기 제 2 열의 입력으로 라우팅(routing)하는
    시프트가능 메모리.
  6. 제 1 항에 있어서,
    상기 제 1 열 및 상기 제 2 열의 비트 라인들 상에 감지 증폭기 및 비트 라인 구동기 중 하나 또는 둘 모두를 더 포함하고, 상기 감지 증폭기 및 상기 비트 라인 구동기는 메모리 셀들의 복수의 행들과 상기 시프트 로직 사이에 있는
    시프트가능 메모리.
  7. 제 6 항에 있어서
    상기 시프트 로직은 상기 제 1 열의 비트 라인의 상기 감지 증폭기의 출력에서 생성되는 데이터를 상기 제 2 열의 비트 라인의 상기 비트 라인 구동기의 입력으로 선택적으로 라우팅하도록 접속되는 멀티플렉서를 포함하고, 상기 멀티플렉서는 데이터가 시프팅되어야 할 때 데이터를 선택적으로 라우팅하는
    시프트가능 메모리.
  8. 제 1 항에 있어서,
    상기 메모리 셀은 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM) 메모리 셀 및 정적 랜덤 액세스 메모리(static random access memory; SRAM) 메모리 셀 중 하나를 포함하고, 상기 열들의 출력 및 입력은 상기 DRAM 메모리 셀 또는 상기 SRAM 메모리 셀과 연관되는 비트 라인들을 포함하는
    시프트가능 메모리.
  9. 제 1 항에 있어서,
    상기 행들과 연관되는 워드 라인들을 사용하여 상기 행들을 선택하는 것 및 데이터를 시프팅하는 것을 가능하게 하는 상기 시프트 로직을 제어하는 것 중 하나 또는 이 둘 모두를 행하는 제어기를 더 포함하는
    시프트가능 메모리.
  10. 시프트가능 메모리 시스템으로서,
    행들 및 열들로 배열되는 메모리 셀들의 어레이―각각의 행의 메모리 셀들은 상기 행의 워드 라인에 공통으로 접속되고 상기 열들의 메모리 셀은 상기 열의 비트 라인에 공통으로 접속됨―와,
    복수의 시프트 회로들―상기 복수의 시프트 회로는 상기 제 1 열에 의해 상기 제 2 열 내로 출력되는 데이터를 시프팅하기 위해 제 1 열 비트 라인과 제 2 열 비트 라인 사이에 접속되고, 시프팅된 데이터는 상기 제 2 열의 선택된 행에 있는 메모리 셀에 저장됨―과,
    상기 워드 라인들을 사용하여 상기 행들을 선택하고 데이터를 시프팅하는 것을 가능하게 하기 위해 상기 시프트 로직 회로를 제어하는 제어기를 포함하는
    시프트가능 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 메모리 셀들의 어레이와 상기 시프트 회로들 사이에 감지 증폭기 및 비트 라인 구동기 중 하나 또는 둘 모두를 더 포함하고, 상기 감지 증폭기는 상기 선택된 행에 있는 상기 제 1 열의 메모리 셀에 의해 생성되는 제 1 비트 라인 상의 신호로부터 출력 데이터를 생성하고 상기 비트 라인 구동기는 상기 제 2 열의 상기 선택된 행에 있는 상기 메모리 셀에 상기 출력 데이터를 제공하는
    시프트가능 메모리 시스템.
  12. 제 10 항에 있어서,
    상기 메모리 셀은 동적 랜덤 액세스 메모리(DRAM) 메모리 셀 및 정적 랜덤 액세스 메모리(SRAM) 메모리 셀 중 하나를 포함하고, 상기 비트 라인들은 상기 DRAM 메모리 셀 또는 상기 SRAM 메모리 셀과 연관되는 비트 라인들의 쌍들을 포함하는
    시프트가능 메모리 시스템.
  13. 제 10 항에 있어서,
    상기 데이터는 데이터 워드들을 포함하고, 상기 데이터 워드들은 상기 복수의 행들 중 하나 이상을 따라 순차적으로 저장되고 대응하는 행들에서 복수의 인접한 어레이들에 걸쳐 분포되는
    시프트가능 메모리 시스템.
  14. 시프트가능 메모리 내에서 데이터를 시프팅하는 방법으로서,
    상기 시프트가능 메모리의 메모리 셀들의 행을 선택하는 단계―상기 시프트가능 메모리의 메모리 셀들은 복수의 행들 및 복수의 열들로서 배열됨―와,
    상기 시프트가능 메모리의 시프트 로직을 사용하여 열들 사이에서 데이터를 통신하는 단계―데이터를 통신하는 것은 제 1 열부터 제 2 열까지이고, 상기 데이터는 상기 선택된 행에 있는 제 1 열의 메모리 셀에 의해 제공됨―와,
    상기 선택된 행에 있는 제 2 열의 메모리 셀에 상기 통신된 데이터를 저장하는 단계를 포함하고,
    상기 통신된 데이터는 상기 선택된 행을 따라 상기 제 1 열 메모리 셀로부터 상기 제 2 열 메모리 셀로 시프팅되는
    데이터 시프팅 방법.
  15. 제 14 항에 있어서,
    상기 열들 사이에서 데이터를 통신하는 단계는,
    감지 증폭기를 사용하여 상기 제 1 열의 메모리 셀로부터의 비트 라인 상의 신호를 증폭하여 상기 감지 증폭기의 출력에서 상기 데이터를 생성하는 단계와,
    상기 감지 증폭기의 출력으로부터 상기 제 2 열의 비트 라인 구동기의 입력으로 상기 데이터를 선택적으로 전달하는 단계와,
    상기 선택된 행에 있는 상기 제 2 열의 메모리 셀에 상기 데이터를 저장하는 것을 가능하게 하는 신호를 생성하기 위해 상기 비트 라인 구동기를 사용하여 상기 제 2 열의 비트 라인을 구동하는 단계를 포함하고,
    상기 데이터를 선택적으로 전달하는 단계는 데이터가 시프팅될 때 상기 시프트가능 메모리의 시프트 로직에 의해 수행되는
    데이터 시프팅 방법.
KR1020147011192A 2011-10-28 2011-10-28 행 시프팅 시프트가능 메모리 KR20140085468A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/058462 WO2013062596A1 (en) 2011-10-28 2011-10-28 Row shifting shiftable memory

Publications (1)

Publication Number Publication Date
KR20140085468A true KR20140085468A (ko) 2014-07-07

Family

ID=48168262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147011192A KR20140085468A (ko) 2011-10-28 2011-10-28 행 시프팅 시프트가능 메모리

Country Status (6)

Country Link
US (1) US20140247673A1 (ko)
KR (1) KR20140085468A (ko)
CN (1) CN103907157B (ko)
DE (1) DE112011105706T5 (ko)
GB (1) GB2510286B (ko)
WO (1) WO2013062596A1 (ko)

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI607454B (zh) * 2012-02-13 2017-12-01 中村維男 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統
US9384824B2 (en) * 2012-07-10 2016-07-05 Hewlett Packard Enterprise Development Lp List sort static random access memory
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
EP3188191B1 (en) * 2014-09-30 2019-11-06 Huawei Technologies Co. Ltd. Circuit for shift operation and array circuit
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
WO2016126474A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for parallel writing to multiple memory device locations
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
CN107408404B (zh) 2015-02-06 2021-02-12 美光科技公司 用于存储器装置的设备及方法以作为程序指令的存储
WO2016144724A1 (en) 2015-03-10 2016-09-15 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
WO2016144726A1 (en) 2015-03-12 2016-09-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10180808B2 (en) * 2016-10-27 2019-01-15 Samsung Electronics Co., Ltd. Software stack and programming for DPU operations
US10732866B2 (en) 2016-10-27 2020-08-04 Samsung Electronics Co., Ltd. Scaling out architecture for DRAM-based processing unit (DPU)
US9922696B1 (en) * 2016-10-28 2018-03-20 Samsung Electronics Co., Ltd. Circuits and micro-architecture for a DRAM-based processing unit
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) * 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
CN109933424B (zh) * 2019-01-22 2020-11-13 浙江工商大学 基于数据循环移位的pcm内存行复用方法
US10847215B2 (en) * 2019-04-29 2020-11-24 Arm Limited Bitcell shifting technique
US11901006B2 (en) 2019-05-16 2024-02-13 Xenergic Ab Shiftable memory and method of operating a shiftable memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4504925A (en) * 1982-01-18 1985-03-12 M/A-Com Linkabit, Inc. Self-shifting LIFO stack
US4757503A (en) * 1985-01-18 1988-07-12 The University Of Michigan Self-testing dynamic ram
US4864544A (en) * 1986-03-12 1989-09-05 Advanced Micro Devices, Inc. A Ram cell having means for controlling a bidirectional shift
JPS63231798A (ja) * 1987-03-20 1988-09-27 Fujitsu Ltd 2次元シフトレジスタ
CA1286803C (en) * 1989-02-28 1991-07-23 Benoit Nadeau-Dostie Serial testing technique for embedded memories
JP3037252B2 (ja) * 1998-01-28 2000-04-24 日本電気アイシーマイコンシステム株式会社 アドレス選択回路
US6515895B2 (en) * 2001-01-31 2003-02-04 Motorola, Inc. Non-volatile magnetic register
CN100489797C (zh) * 2001-10-11 2009-05-20 阿尔特拉公司 可编程逻辑设备上的错误检测
GB2393277B (en) * 2002-09-17 2006-01-18 Micron Europe Ltd Method for manipulating data in a group of processing elements to perform a reflection of the data
US7139946B2 (en) * 2002-12-18 2006-11-21 Logicvision, Inc. Method and test circuit for testing memory internal write enable
DE602004024177D1 (de) * 2003-03-14 2009-12-31 Nxp Bv Zweidimensionaler datenspeicher
JP2004296040A (ja) * 2003-03-28 2004-10-21 Renesas Technology Corp 半導体記憶装置
DE102005023118B3 (de) * 2005-05-19 2006-12-21 Infineon Technologies Ag Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen
US7743202B2 (en) * 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US20090193384A1 (en) * 2008-01-25 2009-07-30 Mihai Sima Shift-enabled reconfigurable device
CN101383188B (zh) * 2008-07-16 2011-02-16 南京航空航天大学 一种胚胎电子系统
US8189408B2 (en) * 2009-11-17 2012-05-29 Freescale Semiconductor, Inc. Memory device having shifting capability and method thereof

Also Published As

Publication number Publication date
GB2510286A (en) 2014-07-30
CN103907157A (zh) 2014-07-02
DE112011105706T5 (de) 2014-07-10
GB201407330D0 (en) 2014-06-11
GB2510286B (en) 2015-08-19
US20140247673A1 (en) 2014-09-04
WO2013062596A1 (en) 2013-05-02
CN103907157B (zh) 2017-10-17

Similar Documents

Publication Publication Date Title
KR20140085468A (ko) 행 시프팅 시프트가능 메모리
JP7240452B2 (ja) 不揮発性メモリの複数区画の同時アクセスのための装置及び方法
KR102491651B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US10095411B2 (en) Controllers including separate input-output circuits for mapping table and buffer memory, solid state drives including the controllers, and computing systems including the solid state drives
US7212457B2 (en) Method and apparatus for implementing high speed memory
US20080215801A1 (en) Portable Data Storage Using Slc and Mlc Flash Memory
US9846565B2 (en) Shiftable memory employing ring registers
KR20090082784A (ko) Nvram 셀을 채용한 플래쉬 메모리 장치
CN107767913A (zh) 输出存储装置的内部状态的装置和使用其的存储系统
KR970072440A (ko) 반도체 기억 장치
EP2798637B1 (en) Metablock size reduction using on chip page swapping between planes
KR20140014299A (ko) 시프트 가능 메모리
KR102427262B1 (ko) 랜덤 액세스 메모리 장치들 및 불휘발성 메모리 장치들을 포함하는 저장 장치
US20200019508A1 (en) Memory device
CN109891397A (zh) 用于固态装置中的操作系统高速缓冲存储器的设备及方法
JP7216247B1 (ja) バンク割り当てを備えたマルチポート不揮発性メモリデバイスおよび関連するシステムおよび方法
CN106856097A (zh) 半导体器件和包括它的半导体系统
KR101183739B1 (ko) 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로
JPH08129890A (ja) 半導体記憶装置
JPH08505255A (ja) ウィンドウ動作用フレーム・バッファ・システム
KR20160144577A (ko) 불휘발성 메모리 모듈 및 그것의 포함하는 사용자 장치
KR100598907B1 (ko) 연속적 읽기/쓰기가 가능한 플래쉬 메모리
US11055011B2 (en) Storage device
US8238148B2 (en) Semiconductor device having architecture for reducing area and semiconductor system including the same
JP2017059281A (ja) 半導体記憶装置および半導体記憶装置におけるデータ消去方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application