KR20140014299A - 시프트 가능 메모리 - Google Patents

시프트 가능 메모리 Download PDF

Info

Publication number
KR20140014299A
KR20140014299A KR1020137034643A KR20137034643A KR20140014299A KR 20140014299 A KR20140014299 A KR 20140014299A KR 1020137034643 A KR1020137034643 A KR 1020137034643A KR 20137034643 A KR20137034643 A KR 20137034643A KR 20140014299 A KR20140014299 A KR 20140014299A
Authority
KR
South Korea
Prior art keywords
memory
data
adjacent
shiftable
memory cell
Prior art date
Application number
KR1020137034643A
Other languages
English (en)
Other versions
KR101667097B1 (ko
Inventor
테렌스 피 켈리
알란 엘 데이비스
매튜 디 피켓
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20140014299A publication Critical patent/KR20140014299A/ko
Application granted granted Critical
Publication of KR101667097B1 publication Critical patent/KR101667097B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. 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
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • 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
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

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

Abstract

시프트 가능 메모리는 시프트 가능 메모리 내에 저장된 데이터의 인접한 서브세트를 시프트하는 시스템 및 방법에서 이용된다. 시프트 가능 메모리는 메모리에 의해 저장된 데이터의 인접한 서브세트를 메모리 내의 제 1 위치에서 제 2 위치로 시프트하는 빌트인 시프팅 기능을 가지는 메모리를 포함한다. 인접한 서브세트는 메모리의 총 크기보다 더 작은 크기를 가진다. 시스템은 인접한 서브세트의 어드레스 및 길이를 제공하는 프로세서를 더 포함한다. 상기 방법은 데이터의 인접한 서브세트를 선택하고 선택된 인접한 서브세트를 시프트하는 것을 포함한다.

Description

시프트 가능 메모리{SHIFTABLE MEMORY}
본 발명은 시프트 가능 메모리(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)를 위한 회로소자를 소유할 수 있다.
그러나, 프로세서에서의 프로세싱 및 메모리에서의 저장의 연대기적 아키텍처 분할은 시간이 특정한 문제들을 드러내고, 이 문제들은 갈수록 더욱 명확해지고 있다. 특히, 저장을 제공하는 주 메모리를 뒤로 하면서 CPU 내의 모든 프로세싱을 집중시키는 종래의 아키텍처 분할은 특히 처리되고 있는 데이터의 양의 크기가 증가할 때 문제점들을 드러낼 수 있고 정말 문제점들을 드러낸다. 예를 들어, 큰 데이터 세트를 프로세싱하거나 아니면 조작하기 위해, 데이터 모두는 전형적으로 데이터 버스를 통해 CPU 및 메모리 사이를 수회 왔다갔다해야만 한다. 심지어 복잡한 캐싱(cashing) 및 프리-페칭(pre-fetching) 방식들에 있어서, 데이터 버스는 예를 들어 전체 프로세싱 성능에 대해 현저한 병목현상을 나타낼 수 있다.
본원에서 기술되는 원리들에 따른 예들의 다양한 특징들은 첨부 도면들과 함께 취해지는 다음의 상세한 설명을 참조하여 더욱 용이하게 이해될 수 있고, 여기서 동일한 참조 번호들은 동일한 구조 요소들을 지정한다:
도 1a는 본원에서 기술되는 원리들의 예에 따라, 시프트 가능(shiftable) 메모리 내의 선형 어레이에 저장되는 데이터의 인접한 서브세트(contiguous subset of data)의 다운시프트(downshift)의 예를 도시하는 도면이다.
도 1b는 본원에서 기술되는 원리들의 예에 따라, 시프트 가능 메모리 내의 선형 어레이에 저장되는 데이터의 인접한 서브세트의 업시프트(upshift)의 예를 도시하는 도면이다.
도 2는 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리의 블록도를 도시하는 도면이다.
도 3은 본원에서 기술되는 원리들의 예에 따라, 증강 디코더(augmented decoder)의 진리표를 도시하는 도면이다.
도 4는 본원에서 기술되는 원리들의 예에 따라, 증강 디코더의 일부분의 개략도를 도시하는 도면이다.
도 5a는 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리의 개략도를 도시하는 도면이다.
도 5b는 본원에서 기술되는 원리들의 다른 예에 따라, 시프트가능 메모리의 개략도를 도시하는 도면이다.
도 6은 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리 시스템의 블록도를 도시하는 도면이다.
도 7은 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리의 방법의 흐름도를 도시하는 도면이다.
특정한 예들은 상기 참조 도면들에서 도시된 특징들 외에 그리고 상기 특징들을 대신하는 것들인 다른 특징들을 가질 수 있다. 상기 및 다른 특징들은 상기 참조 도면들을 참조하여 후술된다.
본원에서 기술되는 원리들에 따른 예들은 메모리 내의 데이터 시프팅 기능을 제공한다. 특히, 데이터 시프팅 기능은 본원에서 기술되는 원리들의 다양한 예들에 따라, 실질적으로 메모리 내에 빌트인다. 내장 데이터 시프팅 기능은 메모리 내에 저장되는 데이터의 인접한 서브세트의 측 이동 또는 시프트를 제공한다. 예를 들어, 저장되는 데이터의 인접한 세트는 메모리 내에서 제 1 위치에서 제 2 위치로 시프트될 수 있다. 저장되는 데이터는 제 2 위치로 시프트될 때 인접한 서브세트 내에서 순서화된 관계를 지닌다. 더욱이, 상기 시프트는, 다양한 예들에 따르면, 전적으로 메모리 내에서 발생한다. 특히, 상기 시프트는 일반적으로 메모리 외부에 있으면서 프로세서 및 메모리 사이에서 이동되는 데이터를 수반하지 않는 프로세서와 같이 자원들을 이용하지 않고 달성된다. 결과적으로, 내장 시프팅 기능을 가지는 메모리는 본원에서 ‘시프트 가능 메모리(shiftable memory)’로 칭해진다.
일부 예들에 따르면, 본원에서 시프트 가능 메모리에 의해 제공되는 시프트는 새 데이터가 삽입될 수 있는 메모리 내의 위치를 개방하는데 이용될 수 있다. 특히, 저장되는 데이터의 인접한 서브세트 위 또는 아래의 메모리 위치들은 저장되는 데이터의 인접한 서브세트가 시프트 가능 메모리 내의 시프트에 의해 이동될 때 데이터 삽입에 이용 가능하게 렌더링(rendering)될 수 있다. 다른 예들에 따르면, 시프트는 인접한 서브세트의 시작점(beginning) 위에 그리고 인접한 서브세트의 종점(ending) 아래 중 하나에 저장되는 데이터를 삭제 또는 ‘중첩 기록(overwrite)’하는데 이용될 수 있다. 특히, 인접한 서브세트 위 또는 아래에 저장되는 데이터는 인접한 데이터가 시프트 가능 메모리에 의해 시프트될 때, 인접한 서브세트 자체의 일부에 의해 중첩 기록될 수 있다. 예를 들어, 저장되는 데이터의 인접 서브세트가 시프트 가능 메모리 내의 더 큰 데이터 구조의 일부인 경우, 시프트는 더 큰 데이터 구조 내의 데이터의 일부를 삭제하는 효과를 가질 수 있다. 일부 예들에 따르면, 시프트 가능 메모리 내에서 데이터를 삽입하거나 또는 데이터를 삭제하기 위해 데이터를 시프트하는 것은 일반적으로 스프트 가능 메모리를 사용하지 않고 가능한 것보다 더 적은 시간에, 일부 예들에서는 상당히 더 적은 시간에 달성될 수 있다. 실제로, 시프트는, 일부 예들에 따르면 시프트 가능 메모리를 시용하여 실질적으로 일정한 시간에 달성될 수 있다.
대조적으로, 예를 들어 시프트를 수행하기 위해 프로세서에 의존하는 종래의 메모리는 일반적으로 시프트되고 있는 데이터의 양에 비례하는 시간을 필요로 한다. 예를 들어, 종래의 메모리 내의 데이터를 시프트하는 것은 전형적으로 시프트되는 데이터를 판독하고 그 후에 데이터를 메모리로 다른 위치에 역으로 기록하는 프로세서를 수반한다. 판독 및 기록은 예를 들어, 종래의 메모리의 구조 및 기능으로 인해 프로세서에 의해 워드를 기준으로 수행될 수 있다. 시프트되고 있는 데이터 내의 각각의 데이터 워드는 프로세서에 의해 종래의 메모리로부터 판독되어야만 하고 그 후에 후속해서 종래의 메모리에 다시 기록되어야만 하므로, 데이터를 시프트하는 시간은 일반적으로 예를 들어, 시프트되고 있는 데이터의 양 또는 길이(또는 데이터 워드들의 수)에 비례한다. 데이터량이 더 크면 클수록, 시프트 동작이 더 오래 걸릴 것이다.
더욱이, 종래의 메모리는 데이터를 시프트할 때 판독 및 기록을 수행하기 위해 종래의 메모리의 외부에 있는 자원(예를 들어, 프로세서)에 의존한다. 시프트를 수행하는 자원이 종래의 메모리의 외부에 있으므로, 시프트에 수반되는 데이터 워드들의 각각은 어떤 형태의 데이터 버스 또는 유사한 통신 채널을 통해 외부 자원 및 종래의 메모리 사이를 통과하여야만 한다. 데이터 버스 또는 유사한 통신 채널은 판독 및 기록 동작들의 속도를 실질적으로 제한하고, 결과적으로 시프트의 전체 속도를 제한할 수 있다. 그러므로, 큰 데이터의 서브세트들을 시프트하는 것은 종래의 메모리를 이용하여 시프트를 수행하는 비례 시간 양태들 및 데이터 버스 속도의 효과들 중 하나 또는 이 둘 모두로 인해 프로세싱 시간 측면에서 상당히 큰 손실이 될 수 있다.
본원에 기술되는 원리들에 따르면, 시프트 가능 메모리는 예를 들어, 시프트를 수행하기 위해 데이터가 판독되고 그 후에 기록될 필요가 없도록 내장 시프팅 기능을 가진다. 저장되는 데이터의 인접한 서브세트는 시프트 가능 메모리(예를 들어, 어드레스 및 길이를 이용하여)에게 식별되고 시프트 가능 메모리는 상기 인접한 서브세트를 시프트하라는 명령을 받는다. 그 후에 시프트가 달성되며 그 후에는 시프트가 전적으로 시프트 가능 메모리 내에서 발생한다. 본원에서 기술되는 원리들의 예들에 따르면, 데이터를 외부 자원으로 그리고 외부 자원으로부터 전송하는 것과 관련되는 속도 제한들은 시프트 가능 메모리에 의해 실질적으로 제거된다. 더욱이, 시프팅에 대한 시간은 예를 들어, 인접한 서브세트의 길이에 실질적으로 독립적일 수 있다.
특히, 시프트 가능 메모리 내에서의 시프팅은 예를 들어, 시프트 가능 메모리 자체의 회로소자에 의해 구현될 수 있다. 이와 같으므로, 시프트 가능 메모리를 이용하는 시프팅은 일부 예들에 따르면, 인접한 서브세트의 각각의 데이터 워드를 순차적으로 판독하고 기록할 것을 요구하지 않는다. 예를 들어, 시프트 가능 메모리를 이용하는 시프팅은 인접한 서브세트 내에 저장된 데이터의 모두를 실질적으로 동시 방식으로 시프트할 수 있다. 이와 같으므로, 시프트 가능 메모리는 인접한 서브세트의 길이와 실질적으로 독립된 시간에 인접한 서브세트의 시프팅을 구현할 수 있다.
일부 예들에서, 시프트 가능 메모리는 기술되는 원리들에 따르면, 실질적으로 일정한 시간으로 시프트를 수행할 수 있다. ‘일정한 시간’이란 인접한 서브세트의 길이와는 관계 없이 저장되는 데이터의 인접한 서브세트를 시프트하는데 실질적으로 유사한 시간 기간이 요구되는 것을 의미한다. 예를 들어, 임의의 길이의 인접한 서브세트는 일부 예들에 따르면, 단일 클럭 사이클 내에서 시프트될 수 있다. 다른 예에서, 더 짧은 인접한 서브세트는 단일 클럭 사이클만을 필요로 할 수 있고 반면에 더 긴 인접한 서브세트는 둘 이상의 클럭 사이클들을 요구할 수 있다. 그러나, 시프트 가능 메모리가 상대적으로 더 짧은 서브세트들보다 더 긴 서브세트들에 대해 더 많은 시간을 이용할 수 있는 반면에, 시프트는 실질적으로 일정한 시간 내에서 계속해서 수행될 수 있는데 왜냐하면 요구되는 시간은 인접 서브세트 길이에 엄밀하게 비례하지 않기 때문이다.
본원에서, 용어 ‘메모리’는 데이터를 수신하고 저장할 수 있는 임의의 종류의 메모리를 칭한다. 메모리는 예를 들어 컴퓨터 프로세서에 의해 또는 컴퓨터 시스템에서 이용될 수 있는 메모리와 일반적으로 부합한다. 특히, 본원에서의 정의에 의해, 메모리는 메모리를 이용하는 컴퓨터의 동작 동안 기록되거나 판독될 수 있는 임의의 종류의 메모리를 칭한다. 예를 들어, 메모리는 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 랜덤 액세스 메모리는 예를 들어, 정적 RAM(SRAM)일 수 있다. 다른 유형들의 메모리는 컴퓨터의 동작 동안 기록 가능한 동적 랜덤 액세스 메모리(DRAM), 플래시 및 비 유사한 휘발성 메모리들, 다양한 형태들의 광학 메모리(예를 들어, 재 기록 가능 광 디스크들), 자기 메모리(예를 들어, 컴퓨터 하드 드라이브들) 및 래치(latch)들, 플립-플롭들 및 다른 쌍안정(bi-static) 구조물들에 기초하는 다양한 메모리 구조들을 포함하지만 이로 제한되지 않는다.
또한 본원에서, 메모리는 어레이들로 배열되는 메모리 셀들을 포함할 수 있다. 예를 들어, 상기 어레이는 선형 어레이일 수 있다. 다른 예에서, 메모리 셀들은 2차원(2-D) 어레이로 배열될 수 있다. 상위의 차수(예를 들어, 삼 차원 이상) 어레이들이 또한 이용될 수 있다. 일부 예들에서, 하위 차수의 어레이(예를 들어, 선형 어레이)는 더 큰 차원을 가지는 어레이(예를 들어, 2-D 어레이) 상에서 정의된다. 예를 들어, 선형 어레이는 직사각형의 2-D 어레이의 메모리 셀들 상에서의 어드레싱 배열(addressing arrangement)에 의해 정의될 수 있다. 게다가, 어레이들은 서브-어레이들로 분할될 수 있다. 예를 들어, 2-D 어레이는 4개의 서브-어레이들로서 4분면들로 분할될 수 있다. 다양한 예들에서, 어레이는 물리 어레이 또는 논리 어레이일 수 있다. 물리 어레이는 상기 어레이에 따라 또는 상기 어레이에 의해 정의되는 바와 같이 서로에 대해 물리적으로 조직되거나 위치되는 메모리 셀들을 포함한다. 논리 어레이는 메모리 셀들의 논리 배열을 어레이로서 포함한다. 논리 어레이에서, 메모리 셀들의 물리 배열은 예를 들어, 어레이에 의해 정의되는 논리 배열과는 상이할 수 있다. 논리 어레이들은 예를 들어, 어드레스 인디렉션(address indirection)을 이용하여 정의될 수 있다.
본원에서 또한 ‘메모리 레지스터’ 또는 간단히 ‘레지스터’로서 칭해지는 메모리 셀은 본원에서 정의되고 이용되는 바와 같이, 데이터를 보유하거나 저장하는 회로 또는 관련되는 구조물이다. 더욱이, 본원에서의 정의에 의해, 메모리 셀들 또는 레지스터들은 데이터 워드를 함께 정의하는 데이터의 하나 이상의 ‘비트들’을 저장할 수 있다. 예를 들어, 비트는 이진값(예를 들어, ‘0’ 또는 ‘1’)일 수 있고 메모리 셀은 단일 비트를 보유할 수 있다. 다른 예에서, 메모리 셀 또는 레지스터는 복수의 이진값 비트들을 보유할 수 있다. 특히, 메모리 셀 또는 레지스터는 본원에서 정의되는 바와 같이, 복수의 비트들을 포함하는 완전한 데이터 워드를 보유 또는 저장할 수 있다. 예를 들어, 메모리 셀 또는 레지스터는 특정한 컴퓨터 시스템의 데이터 워드를 구성하는 4, 8, 16, 32 또는 64 이진비트들을 보유할 수 있다. 또 다른 예에서, 메모리 셀 또는 레지스터는 다른 형태의 데이터(예를 들어, 16진값, 아날로그 값 등)를 보유할 수 있다. 특히, 본원에서 정의되는 바와 같이, 메모리 셀들 및 레지스터들은 데이터를 이진 포맷으로 저장하는 것으로 제한되지 않고, 일부 실시예들에서는, 임의의 데이터 구조물을 보유 또는 저장할 수 있다. 그러나, 본원에서 논의를 위해, 이진 데이터가 일반적으로 예로서 명세서 전체에 걸쳐 이용되고, 달리 정의되지 않으면, 제한하기 위해 이용되는 것은 않는다.
메모리 셀들 또는 레지스터들은 또한 흔히 본원에서 ‘메모리 위치(memory location)들’로서 칭해진다. 엄밀하게 말해서, 메모리 위치는 메모리 내의 한 위치에서의 메모리 셀 또는 셀들이고, 상기 위치는 어드레스에 의해 지정 또는 식별된다. 메모리 셀(들) 또는 메모리 위치는 예를 들어, 어드레스를 이용하여 액세스될 수 있다. 그러나, 본원에서의 논의를 간소화하기 위해, 메모리 셀들 또는 메모리 레지스터들은 일반적으로 어드레스를 가지거나 어드레스에 있는 것으로 칭해진다. 어드레스들은 예를 들어, 메모리의 시프트 가능 유닛(예를 들어, 워드)과 연관될 수 있다.
본원에서 정의되는 바와 같이, ‘시프트 레지스터’는 복수의 인접한 메모리 셀들 사이에서 데이터를 시프트하도록 구성되는 복수의 상호 접속 메모리 셀들이다. 데이터의 시프트는 단일방향(예를 들어, 업시프트 또는 다운시프트 중 하나) 또는 양방향(예를 들어, 업시프트 또는 다운시프트 사이에서 동적으로 선택 가능한)일 수 있다. 인접하는 메모리 셀들은 본원에서의 정의에 의해, 물리적으로 인접하거나(즉, 서로 옆에 위치되는) 또는 논리적으로 인접할 수 있다. 논리적 인접은 일부 예들에 따르면, 오버라잉(overlying) 논리 메모리 구조(예를 들어, 인디렉션을 이용한)에 의해 설정될 수 있다. 예를 들어, 논리적으로 인접한 메모리 셀들은 인터리빙(interleaving)을 이용하는 오버라잉 메모리 구조에 의해 서로 물리적으로 분리될 수 있다. 마찬가지로, 인접한 서브세트는 물리적으로 연속(즉, 물리적으로 인접하는 메모리 셀들 내에서)하거나 논리적으로 연속할 수 있다. 특히, 시프트 레지스터의 인접하는 메모리 셀들에 저장되는 바와 같은 데이터의 인접한 서브세트는 본원에서의 정의에 의해, 메모리 셀들의(예를 들어, 시프트 레지스터의) 인접과 유사하거나 인접에 의해 좌우되는 연속성을 획득한다.
일부 예들에서, 시프트 레지스터는 플립-플롭들을 이용하여 구현될 수 있다. 예를 들어, 이른바 데이터 또는 ‘D’ 플립-플롭은 시프트 레지스터의 메모리 셀들을 구현하는데 이용될 수 있다. 그러나, 본원에서의 정의에 의해, 시프트 레지스터들은 종래의 플립-플롭들을 이용하는 구현들로 제한되지 않는다. 예를 들어, SRAM 셀들은 본원에서 기술되는 원리들의 다양한 예들에 따라, 시프트 레지스터를 구현하기 위해 논리회로들과 상호 접속될 수 있다. 게다가, 시프트 가능 메모리에서 이용되는 시프트 레지스터들은 본원에서의 정의에 의해, 병렬 판독(parallel read) 및 병렬 기록(parallel write) 기능 중 하나 또는 이 둘 모두를 제공할 수 있다. 특히, 시프트 레지스터의 메모리 셀 또는 메모리 셀들은 일부 예들에 따라, 시프트 레지스터로의 병렬 기록을 통해 외부 데이터로 로딩되거나 프로그래밍될 수 있다. 병렬 판독은 예를 들어, 시프트 레지스터의 메모리 셀등 중 하나 이상에 저장되는 샘플 데이터에 이용될 수 있다.
더욱이 본원에서 그리고 상술한 바와 같이, 시프트 가능 메모리에 의해 수행되는 바와 같은 시프트는 달리 명시되지 않으면, 메모리 내에 저장되는 데이터의 인접한 서브세트의 측 이동으로서 정의된다. 특히, 본원에서의 정의에 의해, 시프트 가능 메모리를 이용하는 시프트는 제 1 위치로부터 메모리 내의 제 2 위치로 인접한 서브세트 내의 저장된 데이터의 측 이동(예를 들어, 어레이 위 또는 아래)을 이룬다. 더욱이, 상기 시프트는 저장되는 데이터의 인접한 서브세트에 적용될 때, 인접한 서브세트 내의 저장되는 데이터의 모두를 이동시킨다. 더욱이, 시프트 가능 메모리에 의한 시프트는 본원에서의 정의에 의해 시프트에 관여되는 데이터의 서브 세트의 외부에 있는 데이터의 측 이동 또는 시프트를 발생시키지 않는다. 일반적으로, 시프트는 하나 이상의 메모리 셀들 또는 위치들의 거리만큼 데이터를 이동시킬 수 있다. 예를 들어, 시프트는 메모리 내에서 데이터를 단일 메모리 위치 위로 또는 아래로 이동시킬 수 있다.
본원에서, 방향 ‘위(업, up)’는 시프트 가능 메모리 내의 메모리 위치들과 관련하여 더 작은 어드레스들을 가지는 위치들로의 방향으로 정의된다. 방향 ‘아래(다운, down)’는 더 큰 어드레스들을 가지는 위치들로의 방향으로 정의된다. 그러므로, ‘업시프트’는 데이터를 제 1 또는 시작 위치의 어드레스보다 더 작은 어드레스를 가지는 제 2 위치로 데이터를 시프트하는 것으로 정의된다. 역으로, ‘다운시프트’는 더 작은 어드레스를 가지는 제 1 위치로부터 더 큰 어드레스를 가지는 제 2 위치로 데이터를 이동시키는 결과를 발생시킨다. 그러나, 일부 예들에 따라 제어 가능 또는 선택 가능할지라도, 시프트 방향(예를 들어, 업 또는 다운)은 본원에서 이용되는 바와 같이, 완전하게 임의적일 수 있다. 더욱이, 본원에서 ‘업시프트’ 및 ‘다운시프트’를 특정하여 사용하는 것은 논의를 위한 것으로서 제한하려는 것은 아니다.
도 1a는 본원에서 기술되는 원리들의 예에 따라, 시프트 가능 메모리 내의 선형 어레이에 저장되는 데이터의 인접한 서브세트의 다운시프트(downshift)의 예를 도시한다. 특히, 도 1a는 각각 단일 이진값 또는 비트(예를 들어, ‘1’ 또는 ‘0’)를 저장할 수 있는 복수의 메모리 셀들을 도시한다. 더욱이 도시되는 바와 같이, 도시되는 메모리 셀들의 각각은 00부터 11까지 걸친 어드레스에 의해 식별된다. 도 1a의 좌측은 다운시프트 전의 복수의 메모리 셀들을 도시하고 반면에 우측은 다운시프트 이후의 동일한 복수의 메모리 셀들을 도시한다.
도시된 바와 같이, 시프트 가능 메모리 내의 예시 다운시프트는 예를 들어 어드레스 04에 있는 메모리 셀로 시작하여 어드레스 08에 있는 메모리 셀로 끝나는 저장된 데이터의 인접한 세트를 선택하는 것을 포함한다. 선택되는 인접한 서브세트는 도시된 예어서 비트들 {11001}을 포함한다. 시프트 가능 메모리는 그 후에 도 1a의 우측에 도시되는 바와 같이, 선택된 인접한 서브세트 내의 저장된 데이터를 하나의 어드레스 위치 아래로 이동시킴으로써 선택된 인접한 서브세트를 다운시프트한다. 다운시프트는 인접한 서브세트 내의 비트들의 순서를 유지하고 인접한 서브세트를 어드레스 05 및 어드레스 09 사이의 메모리 셀들 내에 둔다. 저장된 데이터를 다운시프트하는 것은 메모리 셀들의 컨텐츠를 인접한 세브세트 바로 아래에(즉, 어드레스 09에) 중첩 기록하고 상기 메모리 셀의 컨텐츠를 다운시프트된 인접한 서브세트의 마지막 비트(즉, ‘1’)로 대체한다. 더욱이, 원래 인접한 서브세트의 제 1 데이터 값을 지니고 있었던 어드레스 04에서의 메모리 셀은 ‘X’에 의해 표시되는 바와 같이 부정형(indeterminate)들이 된다. 다양한 예들에 따르면, 어드레스 04에서의 메모리 셀은 다운시프트 전에 존재했던 데이터 값(예를 들어, ‘1’)의 카피를 보유하거나 다운시프트 이후에 제거(예를 들어, ‘0’으로 설정)될 수 있다. 일부 예들에서, 어드레스 04에서의 메모리 셀은 예를 들어 외부 소스로부터의 데이터의 삽입에 이용 가능할 수 있다.
도 1b는 본원에서 기술되는 원리들의 예에 따라, 시프트 가능 메모리 내의 선형 어레이에 저장되는 데이터의 인접한 서브세트의 업시프트의 예를 도시한다. 특히, 도 1b는 각각 복수의 데이터 값들 또는 데이터 워드들(예를 들어, ‘abc’, ‘def’ 등)을 저장하는 복수의 메모리 셀들을 도시한다. 더욱이 도시되는 바와 같이, 도시되는 메모리 셀들의 각각은 00부터 11까지 걸친 어드레스에 의해 식별된다. 도 1b의 좌측은 업시프트 전의 복수의 메모리 셀들을 도시하고 반면에 우측은 업시프트 이후의 동일한 복수의 메모리 셀들을 도시한다.
도 1b에 도시된 바와 같이, 시프트 가능 메모리 내의 업시프트는 예를 들어 어드레스 03에 있는 메모리 셀로 시작하여 어드레스 06에 있는 메모리 셀로 끝나는 저장된 데이터의 인접한 세트를 선택하는 것을 포함한다. 시프트 가능 메모리는 그 후에 도 1b의 우측에 도시되는 바와 같이, 선택된 인접한 서브세트 내의 저장된 데이터를 하나의 어드레스 위치 위로 이동시킴으로써 선택된 인접한 서브세트를 업시프트한다. 업시프트는 인접한 서브세트 내의 워드들의 순서를 유지하고 인접한 서브세트를 어드레스 02 및 어드레스 05 사이의 메모리 셀들 내에 둔다. 저장된 데이터를 업시프트함으로써 메모리 셀들의 컨텐츠가 인접한 세브세트 바로 위에(즉, 어드레스 02에) 중첩 기록되고 상기 메모리 셀의 컨텐츠는 업시프트된 인접한 서브세트의 첫번째 워드(즉, ‘jkl’)로 대체된다. 더욱이, 원래 인접한 서브세트의 마지막 워드를 지니고 있었던 어드레스 06에서의 메모리 셀은 ‘X’에 의해 표시되는 바와 같이 부정형들이 된다. 일부 예들에 따르면, 어드레스 06에서의 메모리 셀은 업시프트 전에 존재했던 데이터 값(예를 들어, ‘stu’)의 카피를 보유하거나 업시프트 이후에 제거(예를 들어, ‘000’으로 설정)될 수 있다. 일부 예들에서, 어드레스 06에서의 메모리 셀은 예를 들어, 외부 소스로부터의 데이터의 삽입에 이용 가능할 수 있다.
다양한 예들에 따르면, 시프트 가능 메모리는 범용 컴퓨터 시스템의 주 메모리의 일부일 수 있다. 시프트 가능 메모리는 예를 들어 주 메모리를 구성하는 메모리의 서브세트를 나타낼 수 있다. 더욱이 다양한 예들에 따르면, 시프트 가능 메모리는 예를 들어, 마이크로프로세서 내에서 흔히 다른 구성요소들(예를 들어, 산술 논리 유닛, 제어기 등)과 함께 통합되어 있는 것으로 확인되는 메모리 셀들, 캐시 및 다른 상대적으로 작은 메모리 구조들과 구분된다. 특히, 본원에서의 정의에 의한 시프트 가능 메모리는 주 메모리의 일부이고, 이와 같으므로, 다양한 예들에 따르면, 범용 컴퓨터 시스템 또는 관련 프로세싱 시스템의 프로세서로부터 분리된다. 게다가, 시프트 가능 메모리는 전형적으로 일부 예들에 따르면, 프로세서 내에 존재하거나 존재할 수 있는 자릿수 또는 그 것 이상의 메모리 저위치를 포함한다. 예를 들어, 시프트 가능 메모리는 다수의 메가바이트들 또는 심지어 기가바이트들의 메모리 저위치를 포함할 수 있는 반면에 프로세서 메모리 저위치는 수 천 바이트들(예를 들어 프로세서 레지스터들)에서 수백 메가바이트들(예를 들어, 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(우)’에 대한 어떠한 언급도 본원에서는 제한하는 것으로 의도되지 않는다. 본원에서 용어 “약”은 값에 적용될 때 달리 명백하게 지정되지 않으면 일반적으로 10%의 가감을 의미한다. 더욱이, 본원에서의 예들은 단지 예시적인 것이며 논의를 위해 제시되고 제한하기 위하여 제시되는 것은 아니다.
도 2는 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리(100)의 블록도를 도시한다. 시프트 가능 메모리(100)는 시프트 가능 메모리(100)에 저장되는 데이터의 인접한 서브세트의 시프팅을 제공한다. 더욱이, 데이터의 시프팅은 인접한 서브세트만을 시프트하고 다른 저장된 데이터를 시프트하지 않는다. 특히, 시프트 가능 메모리(100)가 인접한 서브세트의 시프트를 수행할 때, 시프트는 인접한 서브세트의 외부에 위치되는 다른 저장된 데이터를 시프트하지 않는다. 더욱이, 시프트는 일부 예들에 따르면, 인접한 서브세트 내의 저장된 데이터의 순서를 변경하지 않거나, 아니면 다른 방식으로 영향을 미치지 않고 저장된 데이터의 인접한 서브세트를 이동시킨다. 시프트 가능 메모리(100)에 의해 제공되는 시프트는 예를 들어, 새 데이터를 시프트 가능 메모리(100)로 삽입하거나 내부에 저장되는 데이터를 삭제하는 것 중 하나 또는 이 둘 모두에 이용될 수 있다.
외부 자원(예를 들어, 프로세서)은 일부 예들에 따르면, 데이터 버스(Data I/O)(102)를 통해 시프트 가능 메모리(100)로 또는 시프트 가능 메모리(100)로부터 데이터를 통신한다. 인접한 서브세트의 어드레스 및 길이는 예를 들어, 어드레스 버스(ADDR)(104) 및 길이 버스(LEN)(106)를 이용하여 시프트 가능 메모리(100)에 통신될 수 있다. 어드레스 및 길이를, 대안으로 한 쌍의 어드레스들을 전달하는 어드레스 버스는 다른 예에서(도시되지 않음) 이용될 수 있다.
도시되는 바와 같이, 시프트 가능 메모리(100)는 시프트 레지스터(110)를 포함한다. 시프트 레지스터(110)는 데이터를 저장하기 위해 복수의 메모리 셀들(112)을 포함한다. 일부 예들에서, 메모리 셀들(112)은 이진 데이터를 저장하도록 구성된다. 일부 예들에서, 각각의 메모리 셀(112)은 이진 데이터의 단일 비트를 저장(예를 들어 ‘1’ 또는 '0'으로)하도록 구성된다. 단일 예들에서, 각각의 메모리 셀(112)은 복수의 이진 데이터 비트들을 저장하도록 구성된다. 예를 들어, 각각의 메모리 셀(112)은 데이터 워드를 저장할 수 있다. 특히, 일부 실시예들에 따르면, 각각의 메모리 셀(112)은 데이터 워드들에 대응하는 데이터 비트들을 저장하기 위해 집단으로 구성되는 복수의 메모리 위치들을 포함한다. 데이터 워드의 복수의 데이터 비트들은 시프트 메모리 셀(112)의 폭을 정의한다. 다른 예들에서, 메모리 셀(112)은 데이터를 하나 이상의 이진 비트들과는 다른 형태로 저장할 수 있다.
다양한 예들에 따르면, 시프트 레지스터(110)는 실질적으로 임의의 메모리 기술을 이용하여 구현될 수 있다. 예를 들어, 시프트 레지스터(110)의 메모리 셀들(112)은 정적 랜덤 액세스 메모리(SRAM)을 이용하여 구현될 수 있다. 다른 예에서, D 플립-플롭과 같은 하나 이상의 플립-플롭들이 메모리 셀들(112)을 구현하는데 이용될 수 있으나, D 플립-플롭으로 제한되지 않는다. 다른 예들에서, 시프트 레지스터(110)의 메모리 셀들(112)을 구현하는데 또 다른 메모리 기술(예를 들어, DRAM 등)이 이용될 수 있다.
도 2에 도시된 시프트 가능 메모리(100)는 제어기(120)를 더 포함한다. 제어기(120)는 저장되는 데이터의 인접한 서브세트를 선택하도록 구성된다. 제어기(120)는 선택된 인접한 서브세트를 제 1 위치로부터 시프트 레지스터(110) 내의 제 2 위치로 시프트하도록 더 구성된다. 선택된 인접한 서브세트는 본원에 기술되는 원리들의 다양한 예들에 따르면, 시프트 레지스터(110)의 총 길이보다 더 작은 길이를 가진다. 제어기(120)는 예를 들어, 시프트 레지스터(110)에 하나 이상의 제어 신호들을 이용하여 시프트를 수행하라고 명령함으로써 선택된 인접한 서브세트를 시프트할 수 있다.
다양한 예들에서, 시프트 가능 메모리(100)는 저장된 데이터의 인접한 서브세트의 업시프트 및 다운시프트 중 하나 또는 이 둘 모두를 용이하게 한다. 특히, 시프트 레지스터(110) 내의 제 2 위치의 메모리 셀(112)은 시프트의 방향에 따라, 제 1 위치의 대응하는 메모리 셀(112) 위에 아니면 아래에 위치될 수 있다. 일부 예들에서, 제 2 위치의 메모리 셀(112)은 제 1 위치의 대응하는 메모리 셀(112)로부터 떨어져 있는 단일 메모리 셀(또는 메모리 위치)이다. 즉, 시프트는 단일 메모리 위치 또는 어드레스에 의해 저장된 데이터의 인접한 서브세트가 이동하는 것을 나타낸다. 다른 예들에서, 제 2 위치는 단일 메모리 셀(112)보다 더 많은 메모리 셀의 이동을 나타낸다. 예를 들어, 데이터 워드들은 시프트 가능 메모리 내에 비트들의 선형 어레이로서 저장될 수 있고 상기 시프트는 비트들 내의 데이터 워드의 길이와 동일한 수의 비트들일 수 있다.
일부 예들에서, 선택된 인접한 서브세트는 인접한 서브세트의 첫번째 메모리 셀(112)의 어드레스 및 인접한 서브세트 내의 마지막 메모리 셀(112)의 어드레스 모두에 의해 지정된다. 예를 들어, 첫번째 메모리 셀 어드레스 및 마지막 셀 어드레스는 인접한 서브세트를 선택하는 것을 용이하게 하기 위해 제어기(120)(예를 들어, 어드레스 버스를 통하여)로 통신된다. 첫번째 메모리 셀 어드레스 및 마지막 메모리 셀 어드레스는 예를 들어, 단일 버스(예를 들어, ADDR(104))를 통해 제 1 어드레스에 뒤따르는 제 2 어드레스와 같이 또한 순차적으로 통신될 수 있다. 대안으로, 첫번째 및 마지막 어드레스들은 예를 들어, 두 버스들을 통해 또는 단일한 넓은 버스의 두 부분들을 통해 2개의 동시 어드레스들로서 동시에 통신될 수 있다.
다른 예에서, 선택된 인접한 서브세트는 제 1 메모리 셀(112)의 어드레스 및 인접한 서브세트의 길이에 의해 지정된다(예를 들어, 도시된 바와 같이, ADDR(104) 및 LEN(106)을 통해). 이 예들 중 일부에서, 길이는 첫번째 메모리 셀(112)의 이후에 오는 인접한 서브세트의 길이일 수 있어서, 마지막 메모리 셀 어드레스는 첫번째 메모리 셀 어드레스 및 길이의 합에 의해 제공된다. 다른 예들에서, 상기 길이는 첫번째 메모리 셀(112)를 포함함으로써 마지막 메모리 셀 어드레스는 첫번째 메모리 셀 어드레스에 길이를 더한 것에서 하나를 뺌으로써 제공된다. 다른 예들은 예를 들어, 마지막 메모리 셀 어드레스 및 마지막 메모리 셀 앞에 있는 인접한 서브세트의 길이를 지정하는 것뿐 뿐만 아니라 다른 방식들을 지정할 수 있다.
일부 예들에서, 제어기(120)는 증강 디코더(122)를 포함한다. 증강 디코더(122)는 저장된 데이터의 인접한 서브세트를 선택하기 위해 어드레스 및 길이(또는 대안으로 첫번째 및 마지막 메모리 셀 어드레스들)에 대한 정보를 이용한다. 일부 예들에서, 증강 디코더(122)는 시프트 레지스터(110) 내의 선택된 인접한 서브세트의 메모리 셀들(112)의 각각에 대응하여 출력을 어서팅(asserting)하기 위해 상기 정보(예를 들어, 인접한 서브세트의 어드레스 및 길이)를 이용한다. 출력을 어서팅하는 것은 예를 들어 증강 디코더(122) 및 시프트 레지스터(110) 사이의 접속 경로 또는 와이어(예를 들어, 워드 라인) 상에서 논리 ‘1’을 출력하는 것을 포함할 수 있다. 그와 같이, 증강 디코더(122)는 시프트 레지스터(100)의 복수의 워드 라인들 상에 논리 '1’을 출력할 수 있고, 워드 라인들은 선택된 인접한 서브세트의 저장된 데이터를 포함하는 메모리 셀들에 대응한다. 워드 라인들은 예를 들어, 메모리 셀들(112)의 로드 인에이블(load enable)(LE) 또는 선택(SEL) 입력에 접속될 수 있다. 다른 예들에서, 출력을 어서팅하는 것은 논리 ‘0’을 출력하는 것을 포함한다. 논리 ‘0’을 어서팅하는 것은 예를 들어, 메모리 셀들(112)이 로드 인에이블이 아닌(
Figure pct00001
) 또는 선택이 아닌(
Figure pct00002
) 입력을 가질 때 이용될 수 있다.
일부 예들에서, 증강 디코더(122)는 선택된 영속 서브세트에 인접하고 바로 위에 있는 메모리 셀(112) 또는 선택된 인접한 세트에 인접하고 바로 아래에 있는 메모리 셀(112) 중 하나에 대응하여 추가 출력을 어서팅하도록 더 구성된다. 예를 들어, 선택된 인접한 서브세트 바로 위에 있는 메모리 셀(112)에 대응하는 추가 출력은 저장되는 데이터가 시프트 레지스터(110) 내에서 업시프트될 수 있을 때 어서팅될 수 있다. 인접한 서브세트 바로 위에 있는 메모리 셀(112)에 대응하는 추가 출력은 예를 들어 저장되는 데이터가 시프트 레지스터(110) 내에서 다운시프트될 수 있을 때 어서팅될 수 있다. 특히, 추가 출력은 데이터의 인접한 서브세트의 첫번째 메모리 셀(112) 또는 마지막 메모리 셀(112)로부터 저장된 데이터를 수신하는 메모리 셀(112)을 인에이블(enable)하는데 이용될 수 있다.
도 3은 본원에서 기술되는 원리들의 예에 따라, 증강 디코더(122)의 진리표를 도시한다. 특히, 도시된 진리표에 대응하는 증강 디코더(122)는 8개의 메모리 셀들(112)을 가지는 예시 시프트 레지스터(110)에서 인접한 서브세트를 선택하도록 구성된다. 진리표는 3개의 어드레스 입력들(ADDR), 길이(LEN) 입력 및 8개의 워드 라인들(W)(즉, W0 내지 W7)을 가진다. 8개의 워드 라인들(W)은 예를 들어, 예시 시프트 레지스터(110)에서의 8개의 메모리 셀들(112)의 로드 인에이블(LE) 입력들에 대응할 수 있다. 진리표에 도시될 수 있는 바와 같이, ‘00’과 동일한 ZEN(LEN)의 값에 대해, 증강 디코더(122)는 종래의 디코더와 실질적으로 유사하게 기능한다(즉, 단 하나의 워드 라인(W)이 한 번에 어서팅된다). 그러나, 복수의 워드 라인들(W)은 시프트될 저장된 데이터의 선택된 인접한 서브세트를 보유하거나 저장하는 대응하는 복수의 메모리 셀들(112)을 동시에 인에이블하는 것을 용이하게 하는 LEN의 모든 다른 값들에 대해 어서팅된다.
일부 실시예들에서, 증강 디코더(122)는 판독 전용 메모리(ROM)를 이용하여 구현될 수 있다. ROM에는 증강 디코더(122)의 기능을 지정하는 진리표가 프로그래밍된다. 예를 들어, ROM의 디코더는 입력(예를 들어, ADDR 및 LEN)을 디코딩하고, ROM 내에 프로그래밍된 접속들은 예를 들어 증강 디코더(122) 기능을 생성하기 위해 ROM 디코더의 출력을 증강시킨다. 다른 예에서, 종래의 디코더는 증강 디코더(122)를 구현하기 위해 프로그램된 접속들 외의 다른 출력 회로에 의해 증강될 수 있다.
도 4는 본원에서 기술되는 원리들의 예에 따라, 증강 디코더(200)의 일부분의 개략도를 도시한다. 증강 디코더(200)는 예를 들어, 제어기(120)(예를 들어, 도 2에 도시된 바와 같은)의 증강 디코더(122)로서 이용될 수 있다. 특히, 도 4에 도시된 바와 같이, 증강 디코더(200)는 종래의 디코더(210) 및 출력 회로(220)를 포함한다. 출력 회로(220)는 리플 케스케이드(ripple cascade)를 구현한다. 출력 회로(220)는 제 1의 복수의 래치(latch)들(222) 및 제 2의 복수의 래치들(224)을 포함한다. 제 1 및 제 2의 복수의 래치들(222, 224)은 예를 들어 간단한 셋-리셋(set-reset; S-R) 래치들일 수 있다. 도 4에서 ‘Start’로 라벨링된 제 1의 복수의 래치들(222)은 증강 디코더(200)의 출력에 리플 케스케이드의 시작점을 설정하는데 이용된다. 시작점은 어서팅될 제 1 워드 라인(W)에 대응한다. 도 4에서 ‘Stop’으로 라벨링된 제 2의 복수의 래치들(224)은 어서팅될 마지막 워드 라인에 대응하여 증강 디코더(200)의 출력에서의 리플 케스케이드의 정지점을 설정하는데 이용된다.
출력 회로(220)는 종래의 디코더(210)의 출력들을 래치들(222, 224)에 접속하는 복수의 AND 게이트들(226)을 더 포함한다. 출력 회로(220)는 복수의 OR 게이트들(228) 및 다른 복수의 AND 게이트들(229)을 더 포함한다. 복수의 OR 게이트들(228)은 AND 게이트들(229)을 구동하기 위해 리플 케스케이드를 생성한다. AND 게이트들(229)은, 차례로, 어서팅되는 워드 라인들(W)을 구동한다.
증강 디코더(200)는 선택된 인접한 서브세트의 시작 어드레스 및 정지 어드레스들에 대응하는 입력들을 수신하도록 구성된다. 예를 들어, 증강 디코더(200)는 시작 어드레스에 대응하는 입력을 수신하고나 이후에 어느 정도 이후의 시간에 정지 어드레스에 대응하는 제 2 입력을 수신할 수 있다. 종래의 디코더(210)는 수신된 제 1 입력을 디코딩하고 시작 어드레스에 대응하는 출력 라인을 어서팅한다. 어서팅된 출력 라인은 복수의 AND 게이트들(226)의 동작에 따라,
Figure pct00003
가 어서팅될 때 제 1의 복수의 래치들 중 하나를 세팅한다. 종래의 디코더(210)는 그 후에 수신된 제 2 입력을 디코딩하고 정지 어드레스에 대응하는 출력 라인을 어서팅한다. 어서팅된 출력 라인은 복수의 AND 게이트들(226)의 동작에 따라,
Figure pct00004
이 어서팅될 때 제 2의 복수의 래치들 중 하나를 세팅한다. 그러므로,
Figure pct00005
를 어서팅하는 것은 리플 캐스케이드의 시작점을 래칭(latching)(즉, 세팅)하고 반면에
Figure pct00006
를 어서팅하는 것은 정지점을 래칭(즉, 세팅)한다.
‘세팅’된 또는 래치된 제 1의 복수의 래치(222)는 상기 세팅된 래치(222)의 출력(Q)를 어서팅함으로써 리플 캐스케이드 시작점을 설정한다. 유사하게, 리플 케스케이드 시작점은 세팅된 래치(224)의 출력을 어서팅하는 ‘세팅’된 또는 래칭된 제 2의 복수의 래치(224)에 의해 설정된다. 세팅된 래치들(222, 224)의 어서팅된 출력들(Q)은 세팅된 래치들(222, 224)의 2개의 어서팅된 출력들(Q)에 대응하는 OR 게이트들(228) 사이에서 복수의 OR 게이트들(228)을 위 아래로 전파 또는 ‘리플’한다. 전파가 종료되면, 대응하는 OR 게이트들(228)과 통신하는 AND 게이트들(229)은 시작 어드레스에 대응하는 출력 및 정지 어드레스에 대응하는 어드레스 사이의 증강 디코더(200)의 출력들 모두를 어서팅한다.
Figure pct00007
입력은 세팅된 래치들(222, 224)을 리셋하거나 제거하는데 이용될 수 있다.
일부 예들에 따르면, 시프트 레지스터(110)의 메모리 셀들(112)은 정적 랜덤 액세스 메모리(SRAM) 셀 및 논리 회로를 포함한다. 논리 회로는 논리 회로에 의해 특정한 메모리 셀(112)의 SRAM 셀의 데이터 입력에 적용될 수 있는 복수의 입력들 중에서 선택하도록 구성된다. 복수의 입력들은, 외부 데이터가 특정한 메모리 셀(112)의 SRAM 셀에 의해 기록되고 저장되어야 할 때 논리 회로에 의해 선택될 외부 데이터 입력과, 저장된 데이터가 시프트 레지스터(110) 내에서 위로 시프트(즉, 업시프트)되어야 할 때 논리 회로에 의해 선택될 특정한 메모리 셀(112)의 SRAM 셀 바래 아래에 있는 인접 SRAM 셀의 출력과, 저장된 데이터가 시프트 레지스터(110) 내에서 아래로 시프트(즉, 다운시프트)될 때 논리 회로에 의해 선택될 특정한 메모리 셀(112)의 SRAM 셀 바로 위의 다른 인접한 SRAM 셀의 출력을 포함한다.
도 5a는 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리(300)의 개략도를 도시한다. 도시된 바와 같이, 시프트 가능 메모리(300)는 증강 디코더(320)에 접속되는 복수의 메모리 셀들(310)을 포함한다. 복수의 메모리 셀들(310)은 증강 디코더(320)로부터 복수의 워드 라인들(W)(예를 들어, Wn, Wn+1 등) 중 상이한 워드 라인에 접속되어 있는 각각의 메모리 셀(310)과 수직으로 배열된다. 복수의 메모리 셀들(310)은 시프트 가능 메모리(100)에 관하여 상술한 바와 같이, 시프트 레지스터(110)에 실질적으로 유사한 시프트 레지스터를 공동으로 형성한다. 일부 예들에 따르면, 증강 디코더(320)는 추가 논리(도시되지 않음)와 결합하여, 시프트 가능 메모리(300)의 제어기 역할을 한다. 제어기는 일부 예들에 따르면, 시프트 가능 메모리(100)에 대하여 상술한 제어기(120)과 실질적으로 유사할 수 있다. 실제로, 일부 예들에 따르면, 증강 디코더(320)는 증강 디코더(112)와 실질적으로 유사할 수 있다. 더욱이, 시프트 가능 메모리(300)는 상술한 시프트 가능 메모리(100)의 예시 구현을 나타낸다.
도 5a에 도시된 바와 같이, 시프트 가능 메모리(300)의 메모리 셀들(310)의 각각은 복수의 SRAM 셀들(312), 논리 회로들(314), 및 3상 버퍼(tri-state buffer)들(316)을 포함한다. 각각의 메모리 셀(310) 내의 복수의 SRM 셀들(312)은 예를 들어 복수의 이진 비트들을 포함하는 데이터 워드를 저장하기 위해 함께 사용될 수 있다. 외부 데이터는 데이터 라인들(d)(예를 들어, d0, d1 등)을 이용하여 메모리 셀들(310)에 기록된다. 메모리 셀들(310)에 의해 저장되는 데이터는 출력 라인들(q)(예를 들어, q0, q1 등)을 이용하여 액세스 및 판독될 수 있다. 일부 실시예들에서(도시되지 않음), 데이터 라인들 및 출력 라인들은 공통 데이터 버스(예를 들어, 도 2에 도시된 Data I/O(102))에 접속하도록 멀티플렉싱(multiplexing)된다.
3상 버퍼들(316)은 복수의 SRAM 셀들(312)의 각각의 출력(Q) 및 대응하는 출력 데이터 라인(q) 사이에서 접속된다. 3상 버퍼들(316)은 도시된 바와 같이, IO 입력을 어서팅함으로써 데이터를 판독하도록 인에이블된다. IO 입력이 어서팅되지 않으면, SRAM 셀들(312)의 출력들(Q)은 출력 데이터 라인들(q)로부터 격리된다. 각각의 메모리 셀(310)의 워드 라인은 메모리 셀들(310)의 SRAM 셀들(312)의 각각의 로드 인에이블(LE)에 병렬로 접속된다. 로드 인에이블(LE)은 데이터를 SRAM 셀들(312) 내로 로딩하는 것을 인에이블하는데 이용된다. SRAM 셀들(312)의 각각의 클럭 라인(Clk)은 클럭 입력(Clk)에서 모든 SRAM 셀들(312)에 공통으로 접속된다.
각각의 SRAM 셀(312)은 논리 회로(314)의 출력에서 SRAM 셀(312)의 데이터 입력(D)에 접속되는 연관되는 논리 회로(314)를 가진다. 연관되는 논리 회로(314)는 SRAM 셀(312)에 대응하는 외부 데이터 라인(d)(예를 들어, d0, d1 등)의 각각에 각각 접속되는 3개의 입력들, SRAM 셀(312) 바로 아래에 있는 메모리 셀(310)의 대응하는 SRAM 셀(312)의 출력(Q) 및 SRAM 셀(312) 바로 위에 있는 메모리 셀(310)의 대응하는 SRAM 셀(312)의 출력(Q)을 가진다. 논리 회로(314)는 외부 데이터가 SRAM 셀(312)에 의해 기록 및 저장되어야 할 때 외부 데이터 라인을 선택하도록 구성된다. 논리 회로(314)는 저장된 데이터가 시프트 가능 메모리(300)의 시프트 레지스터 내에서 위로 시프트되어야 할 때 SRAM 셀(312) 바로 아래에 있는 대응하는 SRAM 셀(312)의 출력(Q)을 선택하도록 구성된다. 논리 회로(314)는 저장된 데이터가 시프트 레지스터 내에서 아래로 시프트되어야 할 때 SRAM 셀(312) 바로 위에 있는 대응하는 SRAM 셀(312)의 출력(Q)을 선택하도록 더 구성된다.
예를 들어, 논리 회로(314)에 의한 선택의 제어는 도시된 바와 같이, 제어 입력(
Figure pct00008
)에 의해 제공될 수 있다. 구체적으로, UP가 어서팅될 때, 시프트 가능 메모리(300)의 메모리 셀들(310) 내의 저장된 데이터가 업시프트되고 반면에 저장된 데이터는 UP가 어서트되지 않을 때(즉,
Figure pct00009
이 어서트될 때) 다운시프트된다. 제 1 메모리 셀(310) 및 업시프트 또는 다운시프트에 참여하는 메모리 셀들(310)의 범위는 예를 들어 증강 디코더(320) 제공되는 어드레스(A0,...,Am) 및 길이(L0,...,Lk)의 결합에 의해 제어된다. Data를 어서팅하는 것은, 일부 예들에 따르면 시프트 가능 메모리(300)를, 외부 데이터가 입력 어드레스(A0,...,Am)에 기초하여 증강 디코더(320)의 워드 라인들(W)에 의해 선택되는 메모리 셀(310)에 기록되도록 하는 종래의 SRAM과 유사한 기록 모드로 배치한다.
일부 예들에서, 논리 회로(314)는 멀티플렉서 회로를 포함한다. 예를 들어, 멀티플렉서 회로는 SRAM 셀(312)의 데이터 입력(‘D’)으로의 인가를 위해 상기 정의된 3개의 입력들 중 하나를 선택하도록 구성되는 3-입력 멀티플렉서일 수 있다. 다른 예들에서, 논리 회로(314)는 복수의 3상 버퍼들을 포함할 수 있고, 하나의 3상 버퍼는 논리 회로(314)의 3개의 정의된 입력들의 각각에 대한 것이다. 또 다른 예들에서, 논리 회로(314)는 하나 이상의 멀티플렉서들(예를 들어, 2-입력 멀티플렉서), 하나 이상의 3상 버퍼들 및 다양한 다른 논리 게이트들의 결합을 포함할 수 있다.
도 5b는 본원에서 기술되는 원리들의 다른 예에 따라, 시프트가능 메모리(400)의 개략도를 도시한다. 특히, 도시되는 바와 같이, 시프트 가능 메모리(400)의 메모리 셀들(410)은 각각 D 플립-플롭(412) 및 멀티플렉서(414)를 포함한다. 멀티플렉서(414)는 D 플립-플롭(412)의 데이터 입력(D)에 가해지는 4개의 입력들 중 하나를 선택하도록 구성된다. 네 입력들 중에서의 선택은 Select 입력(예를 들어, Selectn, Selectn+1, Selectn+2 등)에 따른다. Select 입력들은 예를 들어, 제어기(도시되지 않음)에 의해 제공될 수 있다. 더욱이, 예를 들어 3-상 버퍼들(도시되지 않음)을 이용하는 일부 디코딩은 예를 들어 데이터 버스를 통해 시프트 가능 메모리(400)에 기록하거나 시프트 가능 메모리(400)로부터 판독할 때, 외부 데이터 입력들(d)(예를 들어, dn, dn+1,dn+2 등) 및 데이터 출력들(q)(예를 들어, qn, qn+1, qn+2 등)에 의해 이용될 수 있다. 도 5b에 도시되는 외부 데이터 입력들(d) 및 데이터 출력들(q)은 일부 예들에 따르면 도 5a에 도시된 유사한 명칭의 데이터 입력들 및 출력들에 반드시 대응할 필요가 없음을 주목하라.
다시 도 5b를 참조하면, 멀티플렉서(414)의 4개의 선택 가능한 입력들 중 제 1 입력은 외부 데이터 입력들(d)의 각각의 입력에 접속된다. 제 1 선택 가능 입력은 외부 데이터가 D 플립-플롭(412)에 의해 기록되고 저장되어야 할 때 선택된다. 4개의 선택 가능 입력들 중 제 2 입력은 D 플립-플롭(412)의 바로 위의 어드레스(즉, D 플립-플롭(412)의 좌측에 도시된)에서 인접한 D 플립-플롭(412)의 출력(Q)에 접속된다. 제 2 선택 가능 입력은 저장된 데이터가 다운시프트되어야 할 때 멀티플렉서(414)에 의해 선택된다. 4개의 선택 가능 입력들 중 제 3 입력은 D 플립-플롭(412)의 바로 아래의 어드레스(즉, D 플립-플롭(412)의 우측에 도시된)에서 인접한 D 플립-플롭(412)의 출력에 접속된다. 제 3 선택 가능 입력은 저장된 데이터가 업시프트되어야 할 때 멀티플렉서(414)에 의해 선택된다. 4개의 선택 가능 입력들 중에서 제 4 입력은 D 플립-플롭 자체의 출력에 접속된다. 제 4 선택 가능 입력은 저장된 데이터가 유지되어야 하고 D 플립-플롭(412)에 의해 시프트되지 않을 때 멀티플렉서(414)에 의해 선택된다.
저장된 데이터는 예를 들어 특정한 D 플립-플롭(412)이 인접한 서브세트의 데이터를 저장하는 메모리 셀들(410)중 하나가 아닐 때 유지되고 시프트되지 않을 수 있다. 특히, 멀티플렉서(414)는 D 플립-플롭(412)에 의한 시프팅을 불가능하게 하도록 제 4 선택 가능 입력을 선택할 수 있다. 멀티플렉서(414)는 다양한 예들에 따르면, 멀티플렉서로서 기능을 하는 논리 회로(예를 들어, 3상 버퍼들, 스위치들에 의해 구현되는)일 수 있다.
도 5b에 도시된 시프트 가능 메모리(400)는 제어기(도시되지 않음)를 더 포함한다. 제어기는 시프트 가능 메모리(100)와 관련하여 상술한 증강 디코더(122)와 실질적으로 유사한 증강 디코더를 포함할 수 있다. 특히, 제어기는 업시프트 또는 다운시프트에 참여하기 위해 메모리 셀들(410)의 개별 셀들의 Selectn으로(예를 들어, 멀티플렉서(414)를 제어하기 위해) 출력들을 제공한다. 참여는 예를 들어, 시프트될 저장된 데이터의 인접한 서브세트의 어드레스(ADDR) 및 길이(LEN)에 의해 결정된다. 마찬가지로, 제어기는 업시프트 또는 다운시프트에 참여하고 있지 않는 그러한 메모리 셀들(410)의 멀티플렉서들(414)의 제 4 입력을 선택하도록 출력들을 제공한다. 시프트 가능 메모리(400)는 상술한 시프트 가능 메모리(100)의 다른 예시 구현을 나타낼 수 있다. 특히, 도 5b는 예를 들어, 단일 비트 워드를 가지며 D 플립-플롭들(412)의 개별 플립-플롭들 내에 단일 비트 워드들을 저장하는 시프트 가능 메모리(400)를 도시한다.
도 6은 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리 시스템(500)의 블록도를 도시한다. 시프트 가능 메모리 시스템(500)은 어레이 내에서 서로 인접하게 배열되는 복수의 메모리 셀들(510)을 포함한다. 각각의 메모리 셀들(510)은 데이터 워드에 대응하는 하나 이상의 데이터 비트들을 저장하도록 구성된다. 일부 예들에 따르면, 어레이 내에 배열되는 셀들(510)은 상술한 시프트 가능 메모리(100)의 시프트 레지스터(110)의 메모리 셀들(112)과 실질적으로 유사할 수 있다. 특히, 메모리 셀(510)은 예를 들어, 데이터 워드를 저장하도록 배열되는 하나 이상의 정적 랜덤 액세스 메모리(SRAM) 셀들을 포함할 수 있다.
도 6에 도시된 바와 같이, 시프트 가능 메모리 시스템(500)은 제어기(520)를 더 포함한다. 제어기(520)는 어레이 내의 데이터 워드들의 인접한 서브세트를 선택 및 시프트하도록 구성된다. 인접한 서브세트는 어레이의 총 길이보다 더 적은 길이를 가진다. 시프트는 어레이 내의 선택된 인접한 서브세트의 업시프트 또는 다운시프트 중 어느 하나를 나타낸다. 선택된 인접한 서브세트의 시프트는 결과적으로 선택된 인접한 서브세트의 외부에 위치되는 다른 데이터 워드의 시프트를 발생시키지 않는다. 일부 예들에서, 제어기(520)는 시프트 가능 메모리(100)에 관하여 상술한 제어기(120)와 실질적으로 유사할 수 있다.
특히, 제어기(520)는 일부 예들에 따르면, 로드 인에이블(load enable)를 어서팅(asserting)하거나 그렇지 않으면 데이터 워드들의 선택된 인접한 서브세트의 시작점에서 종점까지 각각의 메모리 셀(510)을 선택하는 증강 디코더(도시되지 않음)를 포함할 수 있다. 예를 들어, 선택된 인접한 서브세트의 시작점은 어드레스에 대응할 수 있고 종점은 수신되는 길이 및 어드레스의 합에 대응할 수 있다. 제어기(520)는 시작점에 있는 메모리 셀(510)의 바로 위에 있는 메모리 셀(510) 및 인접한 서브세트의 종점에 있는 메모리 셀(510) 바로 아래에 있는 메모리 셀(510) 중 적어도 하나에 대응하여 로드 인에이블, 워드 라인 또는 이에 등가하는 것을 어레이 내의 시프트의 방향에 따라 어서팅하도록 더 구성될 수 있다.
시프트 가능 메모리 시스템(500)은 프로세서(530)를 더 포함한다. 프로세서(530)는 데이터 워드들의 인접한 서브세트의 길이 및 어드레스를 제공하도록 구성된다. 프로세서(530)는 어드레스 버스(Adress)(532)를 통해 제어기(520)와 통신할 수 있다. 예를 들어, 프로세서(530)는 어드레스 및 길이를 인접한 서브세트의 시작점에 대응하는 메모리 셀(510)의 어드레스 및 인접한 서브세트의 종점에 대응하는 메모리 셀(510)을 결정하는 길이로서 직접적으로 제공할 수 있다. 다른 예에서, 인접한 서브세트의 시작점에 대응하는 메모리 셀(510)의 제 1 어드레스 및 종점에 대응하는 제 2 어드레스는 프로세서(530)에 의해 제공될 수 있다. 이 예에서, 제공되는 길이는 제 1 및 제 2 어드레스들 사이의 차로부터 추론될 수 있다. 더욱이, 프로세서(530)는 데이터 버스(Data I/O)(534)를 이용하여 메모리 셀(510)과 통신할 수 있다. 예를 들어, 데이터 버스(534)는 데이터를 메모리 셀(510)에 기록하기 위해 프로세서(530)에 의해 이용될 수 있다. 유사하게, 메모리 셀(510)에 의해 저장되는 데이터는 예를 들어, 데이터 버스(534)를 이용하여 프로세서(530)에 의해 판독될 수 있다.
일부 예들에 따르면, 프로세서(530)는 예를 들어 시프트 가능 메모리 시스템(500)을 이용하는 범용 컴퓨터의 중앙 프로세서(예를 들어, 마이크로프로세서와 같은 CPU)일 수 있다. 그러한, 복수의 메모리 셀들(510) 및 제어기(520)는 다양한 예들에 따르면, 프로세서(530)와는 별개이고 분리된다. 예를 들어, 복수의 메모리 셀들(510) 및 제어기(520)는 프로세서(530)에 의해 이용되는 메모리 시스템(예를 들어, RAM)의 특수 부분일 수 있다. 특히, 메모리 셀들(510) 및 제어기(520)는 예를 들어, 프로세서(530)의 종래의 시프트 레지스터들이 아니다. 도 6에서의 점선은 프로세서(530) 및 메모리 셀들(510) 및 제어기(520) 사이의 물리적인 분리를 도시한다.
도 7은 본원에서 기술되는 원리들의 예에 따라, 시프트가능 메모리에서 데이터를 시프트하는 방법(600)의 흐름도를 도시한다. 도시된 바와 같이, 시프트가능 메모리에서 데이터를 시프트하는 방법(600)은 내장 시프팅 기능을 가지는 메모리의 메모리 셀들에 저장되는 데이터의 인접한 서브세트를 선택하는 단계(610)를 포함한다. 선택되는(610) 데이터의 인접한 서브세트의 크기 또는 길이는 메모리의 총 크기 또는 길이보다 더 작다. 일부 실시예들에서, 선택하는 단계는 선택된(610) 데이터의 인접한 서브세트의 어드레스 및 길이를 제공하는 단계(620)를 포함한다. 예를 들어, 어드레스는 데이터의 인접한 서브세트의 시작점에 대응하는 메모리 내에 메모리 셀을 지정하고 어드레스 및 길이의 합은 데이터의 인접한 서브세트의 종점에 대응하는 메모리 내에 메모리 셀을 지정한다. 다른 예들에서, 데이터의 인접한 서브세트를 선택하는 단계(610)는 시작 어드레스 및 정지 어드레스를 제공하는 단계를 포함한다. 예를 들어, 시작 어드레스는 인접한 서브세트의 시작점에 대응하는 메모리 셀의 어드레스인 반면에 정지 어드레스는 인접한 서브세트의 종점에 대응하는 메모리 셀의 어드레스이다.
시프트 가능 메모리에서 데이터를 시프트하는 방법(600)은 선택된 데이터의 인접한 서브세트를 제 1 위치로부터 메모리 내의 제 2 위치로 시프팅하는 단계를 더 포함한다. 그러나, 선택된 인접한 서브세트가 시프트되면(620), 시프팅(620)은 전적으로 메모리 내에서 발생한다. 더욱이, 선택된 인접한 서브세트를 시프팅(620)하는 단계는 선택된 인접한 서브세트의 외부에 위치되는 다른 저장된 데이터를 시프트하지 않는다.
일부 예들에서, 시프트 가능 메모리의 방법(600)은 데이터의 인접한 데이터 서브세트를 시프팅(620)한 후에 저장된 데이터를 제공하기 위해 데이터를 메모리에 기록하고 메모리로부터 데이터를 판독하는 것 중 하나를 더 포함한다. 다양한 예들에 따르면, 시프트 가능 메모리에서 데이터를 시프팅하는 방법(600)은 상술한 바와 같이, 시프트 가능 메모리(100) 및 시프트 가능 메모리 시스템(500) 중 하나 이상뿐만 아니라 시프트 가능 메모리(300) 및 시프트 가능 메모리(400) 중에서 어느 하나를 이용하여 구현될 수 있다.
그러므로, 시프트 가능 메모리, 시프트 가능 메모리 시스템, 저장된 데이터의 인접한 서브세트를 시프트 가능 메모리 내에서 시프트하는 시프트 가능 메모리의 방법의 예들이 기술되었다. 상실한 예들은 단지 본원에서 기술되는 원리들을 나타내는 많은 특정한 예들 중 일부를 예시하는 것이 이해되어야만 한다. 명확하게, 당업자는 다음의 청구항들에 의해 정의되는 바와 같은 범위를 벗어나지 않는 많은 다른 구성들을 용이하게 고안할 수 있다.

Claims (15)

  1. 시프트 가능 메모리(shiftable memory)로서,
    메모리를 포함하고, 상기 메모리는 상기 메모리 내의 제 1 위치에서 제 2 위치로 상기 메모리에 의해 저장된 데이터의 인접한 서브세트(a contiguous subset of data)를 시프트하는 빌트인 시프팅 기능(built-in shifting capability)을 가지고, 상기 인접한 서브세트는 상기 메모리의 총 크기보다 더 작은 크기를 가지고,
    상기 인접한 서브세트의 외부에 있는 메모리에 저장된 데이터는 상기 인접한 서브세트가 시프트될 때 시프트되지 않는
    시프트 가능 메모리.
  2. 제 1 항에 있어서,
    상기 빌트인 시프팅 기능을 가지는 메모리는,
    상기 인접한 서브세트를 포함하는 데이터를 저장하기 위해 복수의 메모리 셀을 가지는 시프트 레지스터(shift register)와,
    상기 시프트 레지스터에 의해 저장되는 데이터의 인접한 서브세트를 선택하고 상기 선택된 인접한 서브세트를 상기 시프트 레지스터 내에서 상기 제 1 위치에서 상기 제 2 위치로 시프트하라고 상기 시프트 레지스터에 지시하는 제어기―상기 선택된 인접한 서브세트는 상기 시프트 레지스터의 총 길이보다 더 작은 길이를 가짐―를 포함하되,
    상기 시프트는 전적으로 상기 시프트 레지스터 내에서 발생하는
    시프트 가능 메모리.
  3. 제 2 항에 있어서,
    상기 시프트 레지스터의 각각의 메모리 셀은 데이터 워드에 대응하는 데이터 비트를 저장하는 복수의 메모리 위치를 포함하고, 복수의 상기 데이터 비트는 상기 시프트 레지스터의 폭(a width)을 정의하는
    시프트 가능 메모리.
  4. 제 1 항에 있어서,
    상기 메모리 내의 상기 제 2 위치는 상기 제 1 위치 위 또는 아래에 위치되는
    시프트 가능 메모리.
  5. 제 2 항에 있어서,
    상기 제어기는 상기 시프트 레지스터 내의 상기 선택된 인접한 서브세트의 메모리 셀의 각각에 대응하는 출력을 어서팅(asserting)하기 위해 증강 디코더를 포함하는
    시프트 가능 메모리.
  6. 제 5 항에 있어서,
    상기 증강 디코더는 상기 선택된 인접한 서브세트 바로 위 및 상기 선택된 인접한 서브세트의 바로 아래 중 하나에 인접한 메모리 셀에 대응하는 추가 출력을 더 어서팅하고, 상기 추가 출력은 상기 저장된 데이터가 상기 시프트 레지스터 내에서 업시프트되어야 할 때 상기 선택된 인접한 서브세트 바로 위의 메모리 셀에 대응하며, 상기 저장된 데이터가 상기 시프트 레지스터 내에서 다운시프팅되어야 할 때 상기 선택된 인접한 서브세트 바로 아래의 메모리 셀에 대응하는
    시프트 가능 메모리.
  7. 제 2 항에 있어서,
    상기 시프트 레지스터의 메모리 셀은 정적 랜덤 액세스 메모리(SRAM) 셀 및 논리 회로를 포함하고, 상기 논리 회로는 상기 논리 회로에 의해 상기 시프트 레지스터의 특정 메모리 셀의 SRAM 셀의 데이터 입력에 인가될 복수의 입력 중에서 선택하고, 상기 복수의 입력은, 외부 데이터가 상기 특정 메모리 셀의 SRAM 셀에 기록되고 상기 SRAM 셀에 의해 저장되어야 할 때 상기 논리 회로에 의해 선택될 외부 데이터 입력과, 저장된 데이터가 상기 시프트 레지스터 내에서 업시프트되어야 할 때 상기 논리 회로에 의해 선택될 상기 특정 메모리 셀의 SRAM 셀 바로 아래에 있는 인접 SRAM 셀의 출력과, 저장된 데이터가 상기 시프트 레지스터 내에서 다운시프트되어야 할 때 상기 논리 회로에 의해 선택될 상기 특정 메모리 셀의 SRAM 셀 바로 위에 있는 다른 인접 SRAM 셀의 출력을 포함하는
    시프트 가능 메모리.
  8. 제 2 항에 있어서,
    상기 시프트 레지스터의 메모리 셀은 D 플립-플롭 및 멀티플렉서를 포함하고, 상기 멀티플렉서는 상기 D 플립-플롭의 데이터 입력에 인가될 4개의 입력 중 하나에서 선택하고, 상기 4개의 입력은, 외부 데이터가 상기 D 플립-플롭에 기록되고 상기 D 플립-플롭에 의해 저장되어야 할 때 상기 멀티플렉서에 의해 선택될 데이터 입력과, 저장된 데이터가 상기 시프트 레지스터 내에서 다운시프트되어야 할 때 상기 멀티플렉서에 의해 선택될 상기 D 플립-플롭 바로 위의 어드레스에서의 인접 D 플립-플롭의 출력과, 저장된 데이터가 상기 시프트 레지스터 내에서 업시프트되어야 할 때 상기 멀티플렉서에 의해 선택될 상기 D 플립-플롭 바로 아래의 어드레스에서의 인접 D 플립-플롭의 출력과, 저장된 데이터가 상기 D 플립-플롭에 유지되어야 하며 상기 D 플립-플롭에 의해 시프트되지 않을 때 선택될 상기 D 플립-플롭의 출력에 대응하는
    시프트 가능 메모리.
  9. 시프트 가능 메모리 시스템으로서,
    어레이 내에서 서로 인접하게 배열되는 복수의 메모리 셀―하나의 메모리 셀은 데이터 워드에 대응하는 하나 이상의 데이터 비트를 저장함―과,
    상기 어레이 내에서 데이터 워드의 인접한 서브세트를 선택하고 시프트하는 제어기―상기 인접한 서브세트는 상기 어레이의 총 길이보다 더 작은 길이를 가지고, 시프트는 상기 제어기에 의해 선택되는 상기 어레이 내 상기 데이터 워드의 상기 인접한 서브세트만의 업시프트 또는 다운시프트를 표시함―와,
    상기 데이터 워드의 상기 인접한 서브세트의 어드레스 및 길이를 제공하는 프로세서를 포함하는
    시프트 가능 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 제어기는 데이터 워드의 상기 선택된 인접한 서브세트의 시작점부터 종점까지의 각각의 메모리 셀의 로드 인에이블(load enable)을 어서팅하는 증강 디코더를 포함하고, 상기 시작점은 상기 어드레스에 대응하고 상기 종점은 상기 프로세서로부터 수신되는 상기 어드레스 및 상기 길이의 합에 대응하고, 상기 증강 디코더는 상기 시작점에서 상기 메모리 셀 바로 위의 메모리 셀 및 상기 인접한 서브세트의 종점에 있는 메모리 셀 바로 아래의 메모리 셀 중 적어도 하나에 대응하는 로드 인에이블을 상기 어레이 내의 시프트의 방향에 따라 더 어서팅하는
    시프트 가능 메모리 시스템.
  11. 제 9 항에 있어서,
    상기 메모리 셀은 상기 데이터 워드를 저장하도록 배열되는 하나 이상의 정적 랜덤 액세스 메모리(static random acces memory; SRAM) 셀을 포함하는
    시프트 가능 메모리 시스템.
  12. 제 9 항에 있어서,
    상기 메모리 셀 중에서 인접한 메모리 셀 사이에 논리 회로를 더 포함하고, 상기 논리 회로는 상기 메모리 셀의 데이터 입력에 인가될 복수의 입력 중에서 선택하고, 상기 복수의 입력은, 외부 데이터 워드가 상기 메모리 셀에 기록되고 상기 메모리 셀에 의해 저장되어야 할 때 상기 논리 회로에 의해 선택될 데이터 입력과, 데이터 워드가 상기 어레이 내에서 업시프트되어야 할 때 상기 논리 회로에 의해 선택될 메모리 셀 바로 아래의 어드레스에서의 인접한 메모리 셀의 출력과, 데이터 워드가 상기 어레이 내에서 다운시프트될 때 상기 논리 회로에 의해 선택될 메모리 셀 바로 위의 어드레스에서의 인접한 메모리의 출력을 포함하는
    시프트 가능 메모리 시스템.
  13. 시프트 가능 메모리에서 데이터를 시프트하는 방법으로서,
    빌트인 시프트 기능을 가지는 메모리의 메모리 셀 내에 저장된 데이터의 인접한 서브세트를 선택하는 단계―데이터의 상기 선택된 인접한 서브세트의 크기는 상기 메모리의 총 크기보다 더 작음―와,
    데이터의 상기 선택된 인접한 서브세트를 상기 메모리 내의 제 1 위치로부터 제 2 위치로 시프트하는 단계를 포함하고,
    상기 선택된 인접한 서브세트가 시프트될 때, 상기 시프트하는 것은 전적으로 상기 메모리 내에서 발생하고 상기 선택된 인접한 서브세트의 외부에 위치되는 다른 저장된 데이터를 시프트하지 않는
    시프트 가능 메모리에서 데이터를 시프트하는 방법.
  14. 제 13 항에 있어서,
    상기 인접한 서브세트를 선택하는 단계는 어드레스 및 길이를 제공하는 단계를 포함하고, 상기 어드레스는 상기 데이터의 인접한 서브세트의 시작점에 대응하는 메모리 내의 메모리 셀을 지정하고, 상기 어드레스 및 상기 길이의 합은 데이터의 상기 인접한 서브세트의 종점에 대응하는 상기 메모리 내의 메모리 셀을 지정하는
    시프트 가능 메모리에서 데이터를 시프트하는 방법.
  15. 제 13 항에 있어서,
    데이터의 상기 선택된 인접한 서브세트를 시프트한 후에 상기 데이터를 상기 메모리에 기록하는 단계와, 상기 저장된 데이터를 상기 메모리에 제공하기 위해 상기 메모리로부터 데이터를 판독하는 단계 중 하나를 더 포함하는
    시프트 가능 메모리에서 데이터를 시프트하는 방법.
KR1020137034643A 2011-06-28 2011-06-28 시프트 가능 메모리 KR101667097B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/042223 WO2013002772A1 (en) 2011-06-28 2011-06-28 Shiftable memory

Publications (2)

Publication Number Publication Date
KR20140014299A true KR20140014299A (ko) 2014-02-05
KR101667097B1 KR101667097B1 (ko) 2016-10-17

Family

ID=47424427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034643A KR101667097B1 (ko) 2011-06-28 2011-06-28 시프트 가능 메모리

Country Status (5)

Country Link
US (1) US9390773B2 (ko)
EP (1) EP2727114B1 (ko)
KR (1) KR101667097B1 (ko)
TW (1) TWI524353B (ko)
WO (1) WO2013002772A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101667097B1 (ko) 2011-06-28 2016-10-17 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 시프트 가능 메모리
KR20140065477A (ko) 2011-10-27 2014-05-29 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 원자적 동작을 지원하는 시프트 가능형 메모리
WO2013062562A1 (en) * 2011-10-27 2013-05-02 Hewlett-Packard Development Company, L.P. Shiftable memory supporting in-memory data structures
WO2013062559A1 (en) * 2011-10-27 2013-05-02 Hewlett-Packard Development Company, L.P. Shiftable memory employing ring registers
KR101660611B1 (ko) 2012-01-30 2016-09-27 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 워드 시프트 정적 랜덤 액세스 메모리(ws-sram)
WO2013130109A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company L.P. Shiftable memory defragmentation
WO2013130108A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company , L. P. Shiftable memory supporting bimodal storage
US9384824B2 (en) * 2012-07-10 2016-07-05 Hewlett Packard Enterprise Development Lp List sort static random access memory
US9740607B2 (en) * 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10691750B1 (en) * 2015-09-28 2020-06-23 Amazon Technologies, Inc. Browser configured to efficiently store browsing session state
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
GB201903513D0 (en) 2019-03-14 2019-05-01 Blueshift Memory Ltd Moving data in a memory and command for memory control
CN114097037A (zh) * 2019-05-16 2022-02-25 艾克斯安耐杰克有限公司 可移位存储器和操作可移位存储器的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521874A (en) * 1982-09-28 1985-06-04 Trw Inc. Random access memory device
EP0237337A2 (en) * 1986-03-12 1987-09-16 Advanced Micro Devices, Inc. Random access memory circuits
US5677864A (en) * 1993-03-23 1997-10-14 Chung; David Siu Fu Intelligent memory architecture
US7051153B1 (en) * 2001-05-06 2006-05-23 Altera Corporation Memory array operating as a shift register

Family Cites Families (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593310A (en) 1969-05-14 1971-07-13 Dick Co Ab Display system
US3708690A (en) 1971-02-22 1973-01-02 Mos Technology Inc Shift register
JPS5130978B1 (ko) 1971-03-05 1976-09-03
US3670313A (en) 1971-03-22 1972-06-13 Ibm Dynamically ordered magnetic bubble shift register memory
US3893088A (en) 1971-07-19 1975-07-01 Texas Instruments Inc Random access memory shift register system
US3838396A (en) 1972-05-18 1974-09-24 Little Inc A Data processor (including editing and revision) with buffer memory
US3797002A (en) 1972-11-16 1974-03-12 Ibm Dynamically double ordered shift register memory
US3812336A (en) * 1972-12-18 1974-05-21 Ibm Dynamic address translation scheme using orthogonal squares
US3916388A (en) 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4037205A (en) 1975-05-19 1977-07-19 Sperry Rand Corporation Digital memory with data manipulation capabilities
JPS5369545A (en) 1976-12-03 1978-06-21 Hitachi Ltd Shift-register-type memory unit
US4322635A (en) 1979-11-23 1982-03-30 Texas Instruments Incorporated High speed serial shift register for MOS integrated circuit
DE3021299A1 (de) 1980-06-06 1982-01-07 Basf Ag, 6700 Ludwigshafen Verfahren zur herstellung von isocyanaten
US4504925A (en) 1982-01-18 1985-03-12 M/A-Com Linkabit, Inc. Self-shifting LIFO stack
US4532606A (en) 1983-07-14 1985-07-30 Burroughs Corporation Content addressable memory cell with shift capability
JPH0754638B2 (ja) 1986-02-18 1995-06-07 松下電子工業株式会社 シフトレジスタ
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次元シフトレジスタ
US5050067A (en) 1987-08-20 1991-09-17 Davin Computer Corporation Multiple sliding register stacks in a computer
US4903240A (en) * 1988-02-16 1990-02-20 Tektronix, Inc. Readout circuit and method for multiphase memory array
US4873665A (en) 1988-06-07 1989-10-10 Dallas Semiconductor Corporation Dual storage cell memory including data transfer circuits
US5153846A (en) 1990-07-30 1992-10-06 At&T Bell Laboratories Digital shift register using random access memory
US5612964A (en) 1991-04-08 1997-03-18 Haraszti; Tegze P. High performance, fault tolerant orthogonal shuffle memory and method
WO1993014459A1 (en) 1992-01-17 1993-07-22 Caelum Research Corporation Modular parallel processing system
US5313433A (en) * 1992-09-11 1994-05-17 Micron Technology, Inc. Windowed flash write circuit
TW207013B (en) 1993-02-19 1993-06-01 Nat Science Committee Architecture of optimal high-speed sorter
JP2970389B2 (ja) 1994-03-30 1999-11-02 日本電気株式会社 フリップ・フロップ回路
US5860104A (en) 1995-08-31 1999-01-12 Advanced Micro Devices, Inc. Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates
US5698997A (en) 1995-09-28 1997-12-16 Mayo Foundation For Medical Education And Research Resonant tunneling diode structures for functionally complete low power logic
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
DE69719264T2 (de) 1996-08-26 2003-11-06 Texas Instruments Inc Schieberegister mit negativen Widerstandselementen
JP3284491B2 (ja) 1997-07-08 2002-05-20 達治 増田 Srフリップ・フロップ
US5930323A (en) 1997-08-26 1999-07-27 Texas Instruments Incorporation Ultra fast shift register using resonant tunnel diodes
US6785888B1 (en) 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
JP3157753B2 (ja) * 1997-09-30 2001-04-16 日本電気アイシーマイコンシステム株式会社 半導体記憶回路
JPH11328947A (ja) 1998-05-18 1999-11-30 Nec Corp 大規模fifo回路
US6526505B1 (en) * 1998-07-20 2003-02-25 Koninklijke Philips Electronics N.V. DES encryption system
US6061417A (en) 1998-12-03 2000-05-09 Xilinx, Inc. Programmable shift register
DE19917016A1 (de) 1999-04-15 2000-10-19 Philips Corp Intellectual Pty Schaltungsanordnung zur Parallel/Seriell-Umsetzung
US6362660B1 (en) 1999-07-13 2002-03-26 Texas Instruments Incorporated CMOS latch and register circuitry using quantum mechanical tunneling structures
US6327175B1 (en) 1999-09-13 2001-12-04 Cypress Semiconductor Corporation Method and apparatus for controlling a memory array with a programmable register
JP3744285B2 (ja) 1999-10-29 2006-02-08 日本電気株式会社 シフトレジスタ及びその制御方法
US6560696B1 (en) 1999-12-29 2003-05-06 Intel Corporation Return register stack target predictor
JP2002014809A (ja) 2000-06-28 2002-01-18 Mitsubishi Electric Corp マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体
US6678806B1 (en) 2000-08-23 2004-01-13 Chipwrights Design, Inc. Apparatus and method for using tagged pointers for extract, insert and format operations
US6625057B2 (en) 2000-11-17 2003-09-23 Kabushiki Kaisha Toshiba Magnetoresistive memory device
US6725347B2 (en) 2001-01-16 2004-04-20 Sun Microsystems, Inc. Spin-wheel SDRAM access scheduler for high performance microprocessors
US20040019715A1 (en) 2001-02-06 2004-01-29 Raphael Apfeldorfer Multirate circular buffer and method of operating the same
US6820186B2 (en) 2001-03-26 2004-11-16 Sun Microsystems, Inc. System and method for building packets
JP2003006003A (ja) 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
GB2390179A (en) 2001-12-24 2003-12-31 Vulcan Machines Ltd Improved stack architecture
JP3765273B2 (ja) 2002-02-06 2006-04-12 日本電気株式会社 シフトレジスタ
WO2003094227A1 (en) 2002-04-30 2003-11-13 Japan Science And Technology Agency Solid electrolyte switching device, fpga using same, memory device, and method for manufacturing solid electrolyte switching device
KR100481175B1 (ko) 2002-08-08 2005-04-07 삼성전자주식회사 시프트 리던던시 회로들을 가지는 반도체 메모리 장치
US7093084B1 (en) 2002-12-03 2006-08-15 Altera Corporation Memory implementations of shift registers
JP2005005663A (ja) 2003-02-26 2005-01-06 Sony Corp 量子カオス装置および量子カオスの制御方法
JP2006523340A (ja) 2003-03-14 2006-10-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 2次元データメモリ
JP2004287165A (ja) * 2003-03-24 2004-10-14 Seiko Epson Corp 表示ドライバ、電気光学装置、電子機器及び表示駆動方法
JP2004296040A (ja) 2003-03-28 2004-10-21 Renesas Technology Corp 半導体記憶装置
US6834005B1 (en) 2003-06-10 2004-12-21 International Business Machines Corporation Shiftable magnetic shift register and method of using the same
CA2435148A1 (en) 2003-07-15 2005-01-15 Robert J. Blainey System and method for lock caching for compound atomic operations on shared memory
JP4350459B2 (ja) 2003-08-26 2009-10-21 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7293132B2 (en) 2003-10-08 2007-11-06 Samsung Electronics Co., Ltd. Apparatus and method for efficient data storage using a FIFO memory
US7260757B2 (en) * 2003-11-25 2007-08-21 International Business Machines Corporation System and method for testing electronic devices on a microchip
TWI244033B (en) 2003-11-26 2005-11-21 Sunplus Technology Co Ltd Processor capable of cross-boundary alignment of a plurality of register data and method of the same
DE10356851B4 (de) 2003-12-05 2006-02-02 Infineon Technologies Ag Schieberegister zum sicheren Bereitstellen eines Konfigurationsbits
JP2005268578A (ja) 2004-03-19 2005-09-29 Toudai Tlo Ltd サーミスタ素子
US7330369B2 (en) 2004-04-06 2008-02-12 Bao Tran NANO-electronic memory array
KR100609699B1 (ko) 2004-07-15 2006-08-08 한국전자통신연구원 급격한 금속-절연체 전이 반도체 물질을 이용한 2단자반도체 소자 및 그 제조 방법
US7570611B2 (en) 2004-12-30 2009-08-04 Intel Corporation Parallel processing data transfer arrangements
US20060274585A1 (en) 2005-06-03 2006-12-07 Jung Chang H Memory device with row shifting for defective row repair
US7502896B2 (en) 2005-06-07 2009-03-10 Stmicroelectronics Pvt. Ltd. System and method for maintaining the integrity of data transfers in shared memory configurations
KR101102157B1 (ko) 2005-09-16 2012-01-02 삼성전자주식회사 금속 나노 입자를 이용한 휘발성 음저항 소자
KR100719310B1 (ko) 2005-09-23 2007-05-17 한국과학기술원 셋/리셋 래치 회로, 시미트 트리거 회로 및 셋/리셋 래치회로를 이용한 모바일 기반의 d형 플립 플롭 회로와주파수 분배기 회로
CN101326492B (zh) 2005-10-06 2013-07-17 雷德本德有限公司 用于更新包括压缩版本的内容的方法和系统
US7746682B2 (en) 2005-11-03 2010-06-29 Agata Logic Inc. SEU hardened latches and memory cells using programmable resistance devices
US7463056B1 (en) 2005-12-12 2008-12-09 Xilinx, Inc. Writeable shift register lookup table in FPGA with SRAM memory cells in lookup table reprogrammed by writing after initial configuration
JP4950490B2 (ja) 2005-12-28 2012-06-13 株式会社東芝 不揮発性スイッチング素子およびその製造方法ならびに不揮発性スイッチング素子を有する集積回路
US7653895B1 (en) 2006-01-20 2010-01-26 Xilinx, Inc. Memory arrangement for message processing by a plurality of threads
DE102006007023B3 (de) * 2006-02-15 2007-03-22 Infineon Technologies Ag Halbleiterspeicher-Vorrichtung mit einer Wortleitungsansteuerung
CN101336447B (zh) 2006-03-23 2012-02-29 夏普株式会社 显示装置及其驱动方法
KR101390011B1 (ko) 2006-05-22 2014-04-29 삼성전자주식회사 유기 메모리 소자 및 그의 제조방법
JP4229140B2 (ja) 2006-06-16 2009-02-25 ソニー株式会社 集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機
US7450413B2 (en) 2006-08-11 2008-11-11 International Business Machines Corporation Configurable SRAM system and method
WO2008034213A1 (en) 2006-09-18 2008-03-27 Infobright Inc. A method and system for data compression in a relational database
KR100864827B1 (ko) 2006-11-02 2008-10-23 한국전자통신연구원 Mit 소자를 이용한 논리회로
JP4221613B2 (ja) 2006-11-20 2009-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ダイナミック半導体記憶装置及びその動作方法
US7508701B1 (en) 2006-11-29 2009-03-24 The Board Of Trustees Of The Leland Stanford Junior University Negative differential resistance devices and approaches therefor
JP5066921B2 (ja) 2007-01-17 2012-11-07 横浜ゴム株式会社 空気入りタイヤ
CN101162471B (zh) 2007-11-15 2010-12-15 华为技术有限公司 一种插入排序的方法和装置
US20090193384A1 (en) 2008-01-25 2009-07-30 Mihai Sima Shift-enabled reconfigurable device
US7983068B2 (en) 2008-02-12 2011-07-19 Qimonda Ag Memory element with positive temperature coefficient layer
US8341362B2 (en) 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US8283730B2 (en) 2008-05-27 2012-10-09 Shu-Lu Chen Negative differential resistance device with high PVCR and fast switching speed and memory using the same
US7751266B2 (en) 2008-06-26 2010-07-06 International Business Machines Corporation High performance read bypass test for SRAM circuits
US20100023730A1 (en) 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US7961502B2 (en) 2008-12-04 2011-06-14 Qualcomm Incorporated Non-volatile state retention latch
JP2010160653A (ja) 2009-01-07 2010-07-22 Renesas Electronics Corp リングバッファ回路及びその制御回路
US9442846B2 (en) 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
CN101594319B (zh) 2009-06-26 2011-09-14 华为技术有限公司 表项查找方法和装置
FR2948811A1 (fr) 2009-07-28 2011-02-04 St Microelectronics Sa Dispositif de memoire statique a cinq transistors et procede de fonctionnement
US7940550B2 (en) 2009-09-14 2011-05-10 Synopsys, Inc. Systems and methods for reducing memory array leakage in high capacity memories by selective biasing
US8218378B2 (en) 2009-10-14 2012-07-10 International Business Machines Corporation Word-line level shift circuit
US8275728B2 (en) 2009-11-05 2012-09-25 The United States Of America As Represented By The Secretary Of The Air Force Neuromorphic computer
WO2011102864A2 (en) 2009-11-19 2011-08-25 University Of Pittsburgh -- Of The Commonwealth System Of Higher Education On-demand nanoelectronics platform
US20120104346A1 (en) 2010-10-29 2012-05-03 Wei Yi Semiconductor device for providing heat management
US8525146B2 (en) 2010-12-06 2013-09-03 Hewlett-Packard Development Company, L.P. Electrical circuit component
KR101667097B1 (ko) 2011-06-28 2016-10-17 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 시프트 가능 메모리
KR20140065477A (ko) 2011-10-27 2014-05-29 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 원자적 동작을 지원하는 시프트 가능형 메모리
WO2013062559A1 (en) 2011-10-27 2013-05-02 Hewlett-Packard Development Company, L.P. Shiftable memory employing ring registers
WO2013062562A1 (en) 2011-10-27 2013-05-02 Hewlett-Packard Development Company, L.P. Shiftable memory supporting in-memory data structures
US8854860B2 (en) 2011-10-28 2014-10-07 Hewlett-Packard Development Company, L.P. Metal-insulator transition latch
US9466352B2 (en) 2012-01-30 2016-10-11 Hewlett Packard Enterprise Development Lp Dynamic/static random access memory (D/SRAM)
WO2013130109A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company L.P. Shiftable memory defragmentation
WO2013130108A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company , L. P. Shiftable memory supporting bimodal storage
US8819376B2 (en) 2012-04-23 2014-08-26 Hewlett-Packard Development Company, L. P. Merging arrays using shiftable memory
US8717831B2 (en) 2012-04-30 2014-05-06 Hewlett-Packard Development Company, L.P. Memory circuit
US8972630B1 (en) 2013-09-25 2015-03-03 Netronome Systems, Incorporated Transactional memory that supports a put with low priority ring command

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521874A (en) * 1982-09-28 1985-06-04 Trw Inc. Random access memory device
EP0237337A2 (en) * 1986-03-12 1987-09-16 Advanced Micro Devices, Inc. Random access memory circuits
US5677864A (en) * 1993-03-23 1997-10-14 Chung; David Siu Fu Intelligent memory architecture
US7051153B1 (en) * 2001-05-06 2006-05-23 Altera Corporation Memory array operating as a shift register

Also Published As

Publication number Publication date
EP2727114A4 (en) 2015-03-04
TWI524353B (zh) 2016-03-01
KR101667097B1 (ko) 2016-10-17
EP2727114B1 (en) 2020-04-22
TW201306038A (zh) 2013-02-01
US9390773B2 (en) 2016-07-12
EP2727114A1 (en) 2014-05-07
WO2013002772A1 (en) 2013-01-03
US20140126309A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
KR101667097B1 (ko) 시프트 가능 메모리
US9846565B2 (en) Shiftable memory employing ring registers
US8819376B2 (en) Merging arrays using shiftable memory
US9576619B2 (en) Shiftable memory supporting atomic operation
US9542307B2 (en) Shiftable memory defragmentation
US20140247673A1 (en) Row shifting shiftable memory
US9431074B2 (en) Shiftable memory supporting bimodal storage
KR100908542B1 (ko) 불휘발성 메모리 소자 및 그 프로그램 방법
US9606746B2 (en) Shiftable memory supporting in-memory data structures
US20090235047A1 (en) Computer system for electronic data processing
JP3641031B2 (ja) 命令装置
CN103246482A (zh) 用于存储器覆盖的设备和方法
US4949242A (en) Microcomputer capable of accessing continuous addresses for a short time
US4811201A (en) Interconnect circuit
JPS61221948A (ja) デジタルコンピユ−タ用記憶システム
US9645936B1 (en) System and method for informing hardware to limit writing in a memory hierarchy
JPH0256048A (ja) データ転送方法及びデータバッファ装置
US6378057B1 (en) Data processing apparatus
JPH0373046A (ja) メモリ素子の論理シミュレーション方法
JP2010033452A (ja) レジスタ制御回路およびレジスタ制御方法
JP2004032016A (ja) プログラム処理装置及びプログラム処理方法
WO2003067599A1 (en) Multiple write-port memory
JPS6180439A (ja) キヤツシユメモリ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 4