KR20170100448A - 데이터 스토리지 - Google Patents

데이터 스토리지 Download PDF

Info

Publication number
KR20170100448A
KR20170100448A KR1020170024646A KR20170024646A KR20170100448A KR 20170100448 A KR20170100448 A KR 20170100448A KR 1020170024646 A KR1020170024646 A KR 1020170024646A KR 20170024646 A KR20170024646 A KR 20170024646A KR 20170100448 A KR20170100448 A KR 20170100448A
Authority
KR
South Korea
Prior art keywords
address
bits
subset
match
reference memory
Prior art date
Application number
KR1020170024646A
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 KR20170100448A publication Critical patent/KR20170100448A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 스토리지 장치는, 멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출회로를 구비하고, 검출회로는, 제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하고, 제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하도록 구성된 비교기와, 제 1 비교 및 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하는 검출기와, 검출기에 의해 일치가 검출될 때, 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 제어회로를 구비한다.

Description

데이터 스토리지{DATA STORAGE}
본 발명은 데이터 스토리지에 관한 것이다.
일부 데이터 스토리지 장치에서는, 기저 어드레스와 오프셋 어드레스 등의 2개의 어드레스 피연산자의 조합인 테스트 어드레스를 참조 어드레스와 비교하는 것이 필요하다. 예를 들어, 참조 어드레스는 데이터 저장소에 의해 유지되거나 캐시되는 데이터 항목의 어드레스일 수 있다.
본 발명의 목적은 이와 같은 장치를 개량하는 것이다.
예시적인 구성에서는,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출회로를 구비하고, 상기 검출회로는,
제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하도록 구성되고, 제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하도록 구성된 비교기와,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출기와,
상기 검출기에 의해 일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하도록 구성된 제어회로를 구비한 데이터 스토리지 장치가 제공된다.
또 다른 예시적인 구성에서는,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 검출수단을 구비하고, 상기 검출수단은,
제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 수단과,
제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 수단과,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하는 수단과,
일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 수단을 구비한 데이터 스토리지 장치가 제공된다.
또 다른 예시적인 구성에서는,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 단계를 포함하고, 상기 검출단계는,
제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 단계와,
제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 단계와,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하는 단계와,
일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 단계를 포함하는, 데이터 스토리지의 작동방법이 제공된다.
본 발명의 또 다른 구성 및 특징은 첨부된 청구범위에 의해 정의된다.
다음의 첨부도면에 도시된 실시예들을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1 및 도 2는 기저 및 오프셋 어드레스의 사용을 개략적으로 나타낸 것이다.
도 3은 캐시 메모리를 개략적으로 나타낸 것이다.
도 4는 검출회로의 일례를 개략적으로 나타낸 것이다.
도 5는 캐시 메모리의 동작을 나타낸 개략적인 흐름도이다.
도 6은 변환 색인 버퍼(translation lookaside buffer)를 개략적으로 나타낸 것이다.
도 7은 분할된 메모리 디바이스를 개략적으로 나타낸 것이다.
도 8은 데이터 스토리지의 동작방법을 나타낸 개략적인 흐름도이다.
첨부도면을 참조하여 실시예를 설명하기 전에, 이하의 실시예의 설명이 주어진다.
예시적인 실시예는,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출회로를 구비하고, 상기 검출회로는,
제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하도록 구성되고, 제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하도록 구성된 비교기와,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출기와,
상기 검출기에 의해 일치가 검출될 때, 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하도록 구성된 제어회로를 구비한 데이터 스토리지 장치를 제공한다.
예시적인 실시예는, 제 1 서브셋의 비트들에 대해서는 기저 어드레스, 오프셋 어드레스 및 참조 어드레스의 전체의 조합-비교 연산을 행하지만, 다른 서브셋의 비트들에 대해서는 기저 및 참조 어드레스 사이의 단순한 비교를 행함으로써, 전술한 것과 같은 비교의 결과를 근사시키는 구성을 제공한다. 이 구성은, 실제적으로는, 오프셋 어드레스가 (특정한 어플리케이션에 따라) 작으므로, 유용한 결과의 근사를 얻기 위해서는 전체의 조합-비교 연산이 필요하지 않다는 것을 인식하고 있다.
일례로서, 제 1 서브셋의 비트들은 인접하는 세트의 하위 비트들을 포함하고, 제 2 서브셋의 비트들은 제 1 서브셋의 비트들의 비트들보다 더 상위인 나머지 모든 비트들을 포함한다.
일부 상황에서는, 오류의 포지티브 검출(false positive detection) 또는 오류의 네가티브 검출(false negative detection)이 문제가 되지 않을 수도 있다. 다른 예시적인 상황에서는, 오류의 포지티브 검출이 작동 문제를 일으킬 수 있다. 이와 같은 예에서, 장치는, 제 2 서브셋의 어드레스 오프셋의 한 개 이상의 비트들에 대해 소정의 조건이 적용될 때 제어회로에 대해 중단 표시를 제공하도록 구성된 중단 검출기(abort detector)를 구비한다. 예를 들어, 조합이 가산인 상황에서는, 가산으로부터의 자리올림 양(carry amount)이 제 2 서브셋의 어드레스 오프셋의 한 개 이상의 비트들의 그룹과 다를 때, 중단 검출기가 제어회로에 대해 취소 표시를 제공하도록 구성된다. 중단신호는 다양하게 사용될 수 있다. 예를 들어, 제어기는 중단 표시에 응답하여 데이터 스토리지 액세스에 의한 데이터 액세스를 취소하도록 구성된다. 다른 예에서는, 제어기가 취소 표시에 응답하여 데이터 스토리지 장치에 의한 데이터 액세스에 대한 동작 모드를 변경하도록 구성된다.
이 기술의 사용 예는, 한 개 이상의 최근에 액세스된 데이터 항목들에 관련된 정보를 제 2 스토리지 장치 내부에 기억하도록 구성된 제 1 스토리지 장치를 구비하고, 참조 어드레스가 제 1 스토리지 장치에 정보가 유지되는 데이터 항목들 중에서 한 개의 메모리 어드레스이고 테스트 어드레스가 현재 필요한 데이터 항목의 어드레스인 캐시 또는 이와 유사한 메모리 등의 데이터 저장장치이다. (일치)의 검출을 이용하여 제 2 스토리지 장치의 전원을 넣을 것인지 아닌지를 제어함으로써, 잠재적인 네트 전력 절감(net power saving)을 제공해도 된다. 이와 같은 예에서는, 참조 메모리 어드레스와 테스트 어드레스 사이에 일치가 검출되는지 여부에 따라, 제어회로가 제 2 스토리지 장치에 대한 액세스를 선택적으로 인에이블하거나 디스에이블하도록 구성된다. 예를 들어, 제어회로는, 참조 메모리 어드레스와 테스트 어드레스 사이에 일치가 검출될 때, 제 2 스토리지 장치에 대한 액세스를 디스에이블하도록 구성되어도 된다.
다른 수의 비트들이 수용될 수도 있지만, 일례에서는, 참조 메모리 어드레스, 기저 어드레스 및 어드레스 오프셋 각각이 동일한 수의 비트를 포함한다.
또 다른 예시적인 구성은,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 검출수단을 구비하고, 상기 검출수단은,
제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 수단과,
제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 수단과,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하는 수단과,
일치가 검출될 때, 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 수단을 구비한 데이터 스토리지 장치를 제공한다.
또 다른 예시적인 구성은,
멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 단계를 포함하고, 상기 검출단계는,
제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 단계와,
제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 단계와,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하는 단계와,
일치가 검출될 때, 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 단계를 포함하는, 데이터 스토리지의 작동방법을 제공한다.
도 1 및 도 2는 기저 및 오프셋 어드레스의 사용을 개략적으로 나타낸 것이다. 이 예는, 마이크로프로세서 또는 중앙처리장치(CPU) 등의 데이터 프로세서에 의한 데이터 처리 명령의 실행 결과로써 이와 같은 어드레스들의 발생 및 사용에 관한 것이다. 그러나, 예를 들어 데이터 스토리지 장치를 액세스하는데 사용하기 위해, 기저 및 오프셋 구성요소들로부터 어드레스가 발생될 때마다 동일한 원리가 적용가능하다.
도 1을 참조하면, 데이터 처리 명령(10)의 실행은, 기저 메모리 어드레스 및 오프셋 메모리 어드레스를 각각 유지하는 레지스터들 20, 30을 정의한다. 예를 들어, 레지스터 20은 프로그램 카운터(PC) 레지스터일 수 있으며, 오프셋은, 예를 들어, 프로세서 레지스터인 (레지스터 30으로서 작용하는) 레지스터에 유지될 수도 있다.
이와 같은 구성에서는, 기저 및 오프셋 어드레스의 조합인 테스트 어드레스가 참조 메모리 어드레스(40)와 비교된다. 이와 같은 비교가 적절할 수 있는 다양한 응용 및 예시적인 동작을 이하에서 설명한다.
기저 및 오프셋 어드레스의 조합은 가산 조합으로서, 오프셋 어드레스가 기저 어드레스에 가산되어도 된다. 그러나, 기저 어드레스로부터 오프셋 어드레스의 감산이나 오프셋 어드레스의 각각의 비트들과 기저 어드레스의 각각의 비트들의 비트 단위의 논리 조합 등의 다른 종류의 조합도 가능하다. 따라서, 단지 이와 같은 조합의 일례로서 본 실시예에서는 가산 조합을 설명한다.
일부 상황에서는, 참조 어드레스와 기저 및 오프셋 어드레스의 조합 사이의 비교가 시간 제약적(time-critical) 연산이거나, 적어도 더 신속하게 행해질 때 더 유용한 연산일 수 있다. 일부 예에서는, 시간 제약적인 경로로 논리 게이트의 수를 절감하기 위해(또한 잠재적으로는 시간 절약을 하기 위해) 가산 및 비교 연산이 한 개의 논리 연산으로 그룹화된다. 이와 같은 구성이 도 1에서 사용되는데, 이때 한 개의 논리회로(50)가 기저 및 오프셋 어드레스의 가산과 참조 어드레스(40)와의 비교를 제공하여, 일치를 표시하며 제어 기능(70), 예를 들어, 데이터 스토리지 장치의 제어 기능을 제어하는 출력(60)을 제공한다. 이와 같은 제어 기능의 예를 이하에서 설명한다.
이때, 전술한 것과 같이, 논리회로(50)에 의한 일치의 검출은 소위 수정되거나 수정되지 않을 수 있는 예측적(speculative) 결과일 수 있다. 즉, 검출은 테스트 변수들(참조(40)와 기저(20) 및 오프셋(30)의 조합) 사이에 동일성이 존재한다는 어서션(assertion)이지만, 예측적 결과의 경우에, 이 어서션은 여전히 올바르지 않은 것으로 밝혀질지도 모르는 "일치의 검출"이다.
또 다른 예가 도 1에 주어지는데, 이때 명령(100)은 그것의 명령 코드의 일부로서 오프셋(110)을 표시하는 데이터를 갖는다. 이것은 가산기-비교기(50)에 의해 전술한 것과 같이 기저 어드레스 레지스터(20)에 기억된 기저 어드레스에 가산되고, 이 단계에서 기저 어드레스와 오프셋의 가산 조합을 참조 어드레스(40)와 비교하여 제어 기능(70)을 제어하기 위한 출력(60)을 제공한다.
그러나, 일부의 경우에는, 전체 비교기 결과가 필요한 목적을 위해 너무 늦게 생성될 수도 있다. 이와 같은 잠재적인 문제를 완화하는 구성에 대해 이하에서 설명한다.
도 3은 본 발명이 사용되는 데이터 스토리지 장치의 일례인 캐시 메모리를 개략적으로 나타낸 것이다.
캐시 메모리는 소위 캐시 웨이 트랙커(cache way tracker) 구성을 이용한다. 이것은 캐시 메모리 내부의 최근에 액세스된 엔트리들의 저장소(200)를 제공하는데, 사실상 이들 최근에 액세스된 항목들에 관련된 태그들의 캐시를 제공한다. 새롭게 요구되는 액세스에 대해, 새롭게 요구되는 액세스가 사실상 저장소(200) 내부에 기억된 최근에 액세스된 항목들 중에서 한 개와 동일한 어드레스와 관련되는 것으로 검출될 수 있으면, 시스템은 전체 태그 RAM(210)을 인에이블하는 것(에를 들어, 전원을 넣는 것) 대신에 저장소(200)에 기억된 태그를 액세스할 수 있다. 이것은 태그 RAM(210)의 전원을 켤 필요를 선택적으로 없앰으로써 전력 절감을 제공할 수 있다.
이와 같은 시스템이 효율적으로 동작하도록 하기 위해, 새롭게 요구된 어드레스가 사실상 저장소(200)에 기억된 항목들 중에서 한 개와 관련되는지 여부에 대해 검출이 필요하다. 적중(hit)이나 일치가 검출되면, 제어기(220)는 저장소(200)로부터 필요한 태그 정보를 얻을 수 있다(이에 따라 실제 캐시 엔트리들을 유지하는 데이터 RAM(230)이 액세스되도록 할 수 있다). 부적중(miss)이나 일치의 결여가 검출되면, 제어기(220)는 태그 RAM(210)의 전원을 켜서 인에이블시켜, 태그 RAM(210)으로부터 필요한 태그를 얻을 수 있다. 따라서, 이것은 한 개 이상의 최근에 액세스된 데이터 항목들에 관련된 정보를 (태그 RAM(210) 등의) 제 2 스토리지 장치에 기억하도록 구성된 (저장소(200) 등의) 제 1 스토리지 장치의 일례를 제공하며, 참조 어드레스는 제 1 스토리지 장치 내부에 정보가 유지되는 데이터 항목들 중에서 한 개의 메모리 어드레스이다. 예를 들어, 테스트 어드레스는 현재 요구된 데이터 항목의 어드레스일 수 있다. 이와 관련하여, 제어기(220)는, 참조 메모리 어드레스와 테스트 어드레스 사이에 일치가 검출되는지 여부에 따라 (태그 RAM 등의) 제 2 스토리지 장치에 대한 액세스를 선택적으로 인에이블 또는 디스에이블시키도록 구성되고, 예를 들어, 참조 메모리 어드레스와 테스트 어드레스 사이에 일치가 검출될 때 제 2 스토리지 장치에 대한 액세스를 디스에이블시키도록 구성되는 제어회로의 일례를 제공한다.
일반적으로, 제어기(220)는 검출기에 의해 일치가 검출될 때 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하도록 구성된 제어회로의 일례를 제공한다.
검출기(240)는, 이와 같은 검출을 처리하고, 멀티 비트 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하도록 구성되는 검출회로로서 기능하며, 이때 테스트 어드레스는 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합이다. 검출기(240)는, 예를 들어, 도 1 및 도 2를 참조하여 명령의 실행으로부터 수신되거나 명령의 실행에 의해 명시된 기저 어드레스 및 오프셋 어드레스에 응답한다. 검출기(240)는, 기저 및 오프셋 어드레스의 가산적인 조합 등의 조합과, 저장소(200)에 정보가 기억되는 메모리 어드레스들을 표시하는 한 개 이상의 참조 어드레스를 비교한다.
본 실시예에서, 검출기(240)는, 기저 및 오프셋 어드레스의 총합이 저장소(200)에 의해 제공된 참조 어드레스들 중에서 한 개와 동일한지 여부에 대한 조기의 "예측적" 결과를 제공한다. 예측적 결과는, 많은 경우에 또는 심지어는 대부분의 경우에, 올바른 것으로 예측되도록 유도된다. 그러나, 서브셋의 경우에는, 예측적 결과가 올바르지 않을 수도 있다. 이 때문에, 검출기(240)는, 캐시 메모리에 대한 액세스 중에 다른 이유로 발생된 에러신호(어드레스 변환 에러, 캐시 메모리에서 항목 발견되지 않음 등)와 동일한 방식으로 캐시 메모리에서 정보를 요구하는 장치에 대해 주어질 수 있는 중단신호(250)를 제공하도록 구성된다.
예시적인 실시예에서, 태그 RAM은 전원이 켜지지 않으며, 캐시 메모리는 저장소(200)에 기억된 태그에 의존하여 캐시 엔트리를 유지하는 올바른 데이터 RAM(230)이 액세스될 수 있게 한다. 검출기(240)에 의해 오류의 적중을 얻으려고 하면, 잘못된 데이터 RAM(또는 데이터 RAM의 잘못된 뱅크 또는 파티션)이 액세스될 것이다. 따라서, 일부 실시예에서, 중단신호(250)는, 검출기(240)에 의한 예측적 검출이 올바르지 않았고 액세스가 단순히 중단되어야 하며 액세스의 다른 인스턴스로서 재시도되어야 한다는 것을 나타낸다. 이것은 중단 표시에 응답하여 데이터 스토리지 액세스에 의한 데이터 액세스를 취소하도록 구성되는 제어기의 일례를 제공한다.
다른 실시예에서, (예측적 결과가 사실상 틀렸다는 것을 단순히 나타내는) 중단신호를 사용하여 캐시 메모리가 태그 RAM의 전원을 켜게 할 수도 있다(이에 반해, 예측적 결과가 정확했다면, 태그 RAM 들의 전원이 켜지지 않았을 것이다). 따라서, 이들 실시예에서는, 중단신호가 어서트될 액세스가 여전히 진행되지만 다른 형태로 진행된다. 따라서, 이와 관련하여, 중단신호는 전체 액세스가 중단되어야 한다는 것을 나타낸 필요가 없으며, (현재는 올바르지 않은 것으로 밝혀진) 예측적 결과에 근거하여 원래 개시된 액세스가 원래 개시된 것처럼 진행하지 않아야 하며, 이와 다른(아마도 더 느린, 및/또는 전력 소모가 더 큰) 형태로 진행해야 한다는 것을 나타낸다. 이것은, 중단 표시에 응답하여, 데이터 스토리지 장치에 의한 데이터 액세스에 대한 동작 모드를 변경하도록 구성된 제어기의 일례를 제공한다.
예측적 검출은 전체 검출보다 빠르다는 잠재적인 이점을 갖는다. 따라서, 예측적 검출은 신속하게 행해질 수 있고, 중단신호의 발생은 더 오래 걸릴 수 있으므로, 중단신호가 제 시간에 제공되어 캐시 메모리에 대한 이 액세스를 취소할 필요가 있다.
다른 실시예에서는, 중단신호(250)가 검출기(240)에 의해 발생되지 않고, 그 대신에 제어기(220)가 태그 RAM(210)을 참고하여 (검출기(240)로부터 신속하게 얻어진 예측적 결과에 근거하여) 저장소(200)에 의해 주어진 결과가 실제로 올바른지 검사함으로써 주어진다. 그렇지 않은 경우에는, 전술한 것과 같이, 액세스가 중단되거나, 다른 형태로 계속될 수 있다. 이것은 검출기(240)에 의해 예측적 결과가 얻어질 때에도 태그 RAM(210)의 전원을 켠다는 것을 의미하지만, 이용가능할 때 예측적 결과를 사용함으로써 잠재적인 속도 향상의 이점을 보유한다.
검출기(240)에 의한 검출이 항상 올바르다면, 저장소(200)에 기억된 태그를 갖는 모든 항목들에 대해, 제어기(220)가 이 태그를 검색하고, 데이터 RAM(230)을 액세스하며 태그 RAM(210)을 인에이블시키지 않을 것이다. 저장소(200)에 기억된 태그를 갖지 않는 것으로 올바르게 검출된 어드레스에 대해, 제어기(220)는 태그 RAM(210)을 인에이블시켜 액세스하여 태그를 얻고, 이 태그를 사용하여, 데이터 RAM(230)을 액세스할 것이다. 그러나, 예측적 검출값 검출기(240)가 틀리고, 오류의 부적중이 검출되면(따라서, 필요한 어드레스가 저장소(200)에 기억된 태그를 갖더라도, 이 사실이 검출기(240)에 의해 검출되지 않으면), 제어기(220)가 저장소(200) 대신에 태그 RAM(210)으로부터 태그를 얻는다는 점에서 시스템에 여전히 올바르게 동작한다. 따라서, 오류 부적중은, 단지 약간의 전력상의 불이익을 갖고, 올바른 기능을 여전히 제공한다. 그러나, 검출기(240)가 오류 적중을 검출한다면, 제어기(220)가 저장소(200)로부터 태그를 얻으려고 시도하지만 태그가 존재하지 않는다는 점에서 이것은 필요한 결과를 제공하지 않을 것이다. 따라서, 예시적인 실시예에서는, 검출기(240)가 오류의 부적중 결과를 발생하지만 오류의 적중 결과를 발생하지 않는 것이 허용될 수 있다. 검출기(240)의 일례를 도 4를 참조하여 이하에서 설명한다.
도 3의 캐시 메모리의 최종적인 측면은, 캐시 메모리에 대한 액세스에 응답하여, 제어기(220)가 최근에 액세스된 항목들의 이 액세스에 관련된 태그 정보를 저장소(200)에 기억하여, 예를 들면, 저장소(200) 내부의 가장 오래전에 사용된 엔트리를 대체한다는 것이다.
도 4는, 멀티 비트 참조 어드레스와, 멀티 비트 기저 어드레스 및 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출회로의 일례를 개략적으로 나타낸 것이다. 이때, 간략화를 위해 이와 같은 참조 어드레스에 적용가능한 처리를 도표로 나타내었다. (예를 들어, 저장소(200)에 의해) 한 개보다 많은 수의 참조 어드레스와의 비교가 제공된다면, 도 4의 회로의 적어도 일부의 복수의 인스턴스들이 제공될 수 있을 것이다.
도 4의 검출회로는 전술한 것과 같이 2가지 출력, 즉 적중(또는 일치) 출력(300)과 중단 출력(250)을 제공하도록 구성된다. 적중 출력은 도 3의 제어기(220)에 제공되어, 적어도 예측적 기준에 근거하여, 저장소(200)에 기억된 항목들 중에서 한 개에 대응하는 참조 어드레스와 기저 및 오프셋 어드레스의 총합 사이에서 일치가 검출되었다는 것을 표시한다. 중단 출력(250)은, 예를 들어, 나중에(예를 들어, 클록신호의 1 사이클 후에) 주어져, 예측 적중이 사실상 올바르지 않았다는 것을 표시한다.
검출회로는, (회로 320에 의한) 제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 일부 비트이지만 전체 비트는 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들과 비교하도록 구성된, 본 실시예에서는 2개의 비교회로 310, 320으로 구성되는) 비교기를 구비한다. 도시된 실시예에서, 참조 어드레스의 제 1 서브셋은 참조 어드레스의 비트들 6…15를 포함한다. 기저 어드레스의 대응하는 서브셋(비트들 6…15)(340)이 오프셋 어드레스의 대응하는 서브셋(비트들 6…15)(350)에 가산되고 참조 어드레스의 제 1 서브셋(360)과 비교된다. 회로 320에 의해 일치가 검출되면, 제 1 일치신호(325)가 AND 게이트(370)로 주어진다.
이와 별도로, 회로 310은 참조 어드레스의 나머지 더 상위의 비트들(비트들 16…48)(380)과 기저 어드레스의 대응하는 비트들(16…48)(390) 사이의 간단한 비교를 제공함으로써, AND 게이트(370)로 주어지는 제 2 일치신호(400)를 제공한다.
이들 실시예에서, 제 1 및 제 2 일치신호(325, 400)는 그 자체가 예측적이 아니고, 본 발명의 구성에서 이들의 조합이 참조 어드레스가 기저 및 오프셋 어드레스의 조합과 동일한지 여부와 관련된 예측적 결과를 발생할 수 있다.
이때, 동일한 수의 비트를 갖는 메모리 어드레스 등의 멀티 비트 변수와 관련하여, "대응한다"는 용어는 멀티 미트 변수에서 동일한 비트 위치를 가리킨다. 이와 관련하여, "대응한다"는 영어는, 이와 같은 비트가 존재하는 범위까지, 멀티 비트 변수 내부의 동일한 비트 위치를 표시하는 것으로 해석될 수 있다.
이들 2개의 비교 연산은, 제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하도록 구성되고, 제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하도록 구성된 비교기의 연산의 일례를 제공한다.
따라서, 인접하는 세트의 더 하위의 비트들을 포함하는 제 1 서브셋의 비트들과, 제 1 서브셋의 비트들 내부의 비트들보다 더 상위에 있는 모든 나머지 비트들을 포함하는 제 2 서브셋의 비트들에 대해 전술한 것과 같이 제 1 및 제 2 일치 신호가 발생된다.
AND 게이트(370)에 주어진 제 1 및 제 2 신호(400) 모두가 각각의 일치를 표시하는 경우에, AND 게이트는 적중 출력(300)을 어서트함으로써, 재 1 비교 및 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 (본 실시예에서는 기저 어드레스와 오프셋 어드레스의 조합으로 구성되는) 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출기의 일례를 제공한다.
따라서, 지금까지 설명한 도 4의 회로는, 기저 어드레스, 오프셋 어드레스 및 참조 어드레스의 더 하위의 비트들의 서브셋의 전체 가산-비교를 행함으로써 예측적 일치의 표시를 제공하며, 참조 어드레스의 더 상위의 비트들과 기저 어드레스의 대응하는 더 상위의 비트들의 단순한 비교를 제공한다.
많은 경우에, 오프셋 어드레스가 실제 구현시에 자주 제로값이거나 제로값에 가깝다면, 이와 같은 방식으로 검출된 예측적 적중 또는 일치가 올바르므로, 오프셋 어드레스와 기저 어드레스의 조합이 기저 어드레스의 더 높은 상위의 비트에 영향을 미치지 않기 쉽다. 오류 적중이 출력(300)에 의해 제어되는 제어회로에 대한 기능상의 문제가 아닌 예시적인 상황에서는, 도 4의 지금까지 설명한 회로면 충분하다. 그러나, 도 3의 캐시 웨이 트랙커 구성 등의 예에서는, 장치가 처음에는 예측적 적중 검출에 근거하여 진행할 수 있지만, 예측적 적중이 나중에 올바르지 않았던 것으로 밝혀진 경우에 메모리 액세스 트랜잭션을 취소하기 위해 신호 250 등의 중단신호를 사용해도 된다.
중단신호(250)의 발생은 예측적 적중신호의 발생보다 더 오래 걸릴 수 있으며, 본 실시예에서는, 중단신호는 출력 플립플롭(410)의 제어하에서 메모리 액세스 트랜잭션 내부에 1 클록 사이클로, 즉 대략적으로 적중신호(300)가 제공되는 것보다 1 클록 사이클 늦게 공급된다.
중단신호는 다음과 같이 발생된다. 회로 320에 의해 행해지는 가산-비교에서는, 회로 320에 의해 행해지는 조합 연산에서의 산술 자리올림을 표시하는 자리올림 값(420)이 발생된다. 추가적인 비교기(430)가 자리올림 값을 오프셋 어드레스의 제 2 서브셋(비트들 16…48)(440)과 비교하는데, 이때 다른 실시예에서는 전체의 제 2 서브셋보다 적은 수의 비트, 예를 들어 오프셋 부분(440)의 한 개 이상의 하위 비트를 사용해도 된다.
자리올림 비트가 오프셋의 부분(440)과 동일한 것으로 비교기 430이 검출한 경우에, 이것은 예측적 검출이 올바르다는 표시일 수 있으므로, 중단신호가 어서트되지 않는다. 그러나, 비교기 430이 자리올림 비트(420)와 오프셋의 부분(440) 사이에서 일치의 결여를 검출하는 경우에는, 비교기 430의 출력(450)이 적중신호(300)와 결합되어 중단신호(250)를 발생하고, 이 중단신호는 전술한 것과 같이 플립플롭(410)에 의해 다음 클록 사이클에 출력된다. AND 게이트(450)에 의한 적중신호와의 조합은, 적중신호 그 자체가 이미 어서트되지 않은 경우에는 중단신호가 발생되지 않는다는 특징을 제공한다.
이와 같은 회로는, 어드레스 오프셋의 제 2 세트의 한 개 이상의 비트들에 소정이 조건이 적용될 때 제어회로에 대해 중단 표시를 제공하도록 구성된 중단 검출기의 일례를 제공한다. 예를 들어, 조합이 가산인 경우에, 중단 검출기는 가산으로부터의 자리올림 양이 어드레스 오프셋의 제 2 서브셋의 한 개 이상의 비트들의 그룹과 다를 때 제어회로에 중단 표시를 제공하도록 구성되어도 된다.
일부 실시예에서, 참조 메모리 어드레스, 기저 어드레스 및 어드레스 오프셋 각각은 동일한 수의 비트, 예를 들어 48 비트를 포함한다. 사용중인 배치에서는, (비트 0…5 등의) 하위 비트들의 그룹이 참조 및 테스트 어드레스의 비교에서 사용되지 않는데, 이것은 이들 비트들이 사실상 복수의 별개로 어드레스 지정된 데이터 항목들을 유지하는 캐시 라인 등의 한 개의 스토리지 영역에 있는 복수(예를 들어 32)의 엔트리들의 세트에 대한 색인을 제공하기 때문이다.
도 5는 도 3 및 도 4를 참조하여 설명한 종류의 캐시 메모리의 동작을 나타낸 개략 흐름도이다.
스텝 500에서, 예측적 적중이 검출되고 적중신호(300)가 어서트된다. 중단신호(250)를 검출하는 처리는 스텝 510에서 개시된다. 이때, 스텝 510은 스텝 500의 종료 전에 개시할 수 있지만, 본 실시예에서는 스텝 510은 스텝 500의 종료후 약간 후에 종료한다.
적중의 검출에 응답하여, 제어기(220)는 저장소(200)와 저장소(200)로부터 얻어진 정보를 사용하여 데이터 RAM(230)의 예측적 판독을 행한다(스텝 520). 제어기(220)는, 이들 경우에는, 태그 RAM(210)을 인에이블시키기 안는다. 이와 같은 처리는 스텝 510으로부터의 중단신호(250)에 의해 중단될 수 있지만, 그렇지 않은 경우에는 출력(에를 들어, 데이터 RAM 내부의 어드레스 또는 데이터 RAM 내부에 기억된 정보의 내용)이 스텝 530에서 발생된다.
지금까지 설명한 실시예는 캐시 메모리에 관한 것이다. 도 6 및 도 7은 본 발명이 유용할 수 있는 다른 실시예들을 나타낸 것이다.
도 6은, 가상 메모리 시스템에서, 가상 메모리 어드레스와 물리 메모리 어드레스 사이의 메모리 변환을 기억하고, 필요한 경우에는, 이 메모리 변환을 제공하기 위해 사용되는 변환 색인 버퍼를 개략적으로 나타낸 것이다. 이것을 달성하기 위해, 변환 색인 버퍼(TLB))는 버퍼(600)에 메모리 어드레스 변환을 기억한다. 특정한 필요한 가상 메모리 어드레스가 (변환으로서) 버퍼(600) 내부에 기억되지 않는 경우에는, TLB가 어드레스 변환기(610)를 참조하여 이 변환을 획득한 후 그것을 버퍼(600)에 기억한다. 이와 달리, 필요한 변환이 버퍼(600)에 기억된 경우에는, 출력 변환(620)으로서 단순히 출력된다. 이와 같은 동작은, 검출기에 의해 일치가 검출될 때 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하도록 구성된 제어회로(605)에 의해 감시된다.
검출기(630)는, 기저 및 오프셋 가상 메모리 어드레스를 수신하고, 전술한 것과 같이 동작하여, 기저 및 오프셋 어드레스의 조합을 버퍼(600)에 기억된 변환을 표시하는 참조 메모리 어드레스와 비교한다. 이와 같은 구성은 버퍼(600)에 대한 예측적 액세스가 신속하게 개시될 수 있도록 한다. 그러나, 검출기(630)에 의해 중단신호(250)가 어서트되는 경우에는, 예측적 액세스가 중단되고, 버퍼(600)에 의해 어드레스 변환기(610)가 참조되어, 필요한 변환을 얻는다.
도 7은 분할된 메모리 디바이스를 나타낸 또 다른 실시예이다. 이때, 기저 및 오프셋 메모리 어드레스가 검출기(700)에 주어지고, 검출기는 기저 및 오프셋 어드레스와 데이터 스토리지 장치의 복수의 파티션들(710) 내부의 메모리 위치들을 표시하는 참조 어드레스 사이의 혹시나 존재하는 일치를 검출한다. 본 실시예에서는, 중단회로가 필요하지 않다. 적중이 검출되는 파티션(들)에 대해, 이 파티션에 전원이 켜지고 액세스가 행해진다. 따라서, 본 실시예에서는, 오류의 적중이 반드시 문제가 되는 것은 아니지만, 도 4의 회로의 다른 이점들, 특히 예측적 적중신호의 더욱 신속한 발생이 다수의 파티션들의 스토리지에 대한 더 신속한 액세스를 제공할 수 있다. 이들 동작은 검출기에 의해 일치가 검출될 때 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하도록 구성된 제어회로(705)에 의해 감시된다.
도 8은 데이터 스토리지의 동작방법을 예시한 개략적 흐름도로서, 이 방법은, 멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 단계를 포함하고, 상기 검출단계는,
제 1 비교로서, 참조 메모리 어드레스의 제 1 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 단계(스텝 800)와, 제 2 비교로서, 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들(예를 들어, 비트들의 일부이지만 전체 비트가 아니다)을 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 단계와,
상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 참조 메모리 어드레스와 테스트 어드레스 사이의 일치를 검출하는 단계(스텝 810)와,
일치가 검출될 때, 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 단계(스텝 820)를 포함한다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (13)

  1. 멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하도록 구성된 검출회로를 구비하고, 상기 검출회로는,
    제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하고, 제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하도록 구성된 비교기와,
    상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하는 검출기와,
    상기 검출기에 의해 일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 제어회로를 구비한 데이터 스토리지 장치.
  2. 제 1항에 있어서,
    제 1 서브셋의 비트들은 인접하는 세트의 하위 비트들을 포함하고,
    제 2 서브셋의 비트들은 제 1 서브셋의 비트들의 비트들보다 더 상위에 있는 모든 나머지 비트들을 포함하는 데이터 스토리지 장치.
  3. 제 1항에 있어서,
    상기 어드레스 오프셋의 제 2 서브셋의 한 개 이상의 비트들에 대해 소정의 조건이 적용될 때 상기 제어회로에 취소 표시를 제공하는 취소 검출기를 구비한 데이터 스토리지 장치.
  4. 제 3항에 있어서,
    상기 제어회로는 상기 취소 표시에 응답하여 데이터 스토리지 액세스에 의한 데이터 액세스를 취소하도록 구성된 데이터 스토리지 장치.
  5. 제 3항에 있어서,
    상기 제어회로는, 상기 취소 표시에 응답하여, 상기 데이터 스토리지 장치에 의한 데이터 액세스에 대한 동작 모드를 변경하도록 구성된 데이터 스토리지 장치.
  6. 제 3항에 있어서,
    상기 조합은 가산인 데이터 스토리지 장치.
  7. 제 6항에 있어서,
    상기 가산으로부터의 자리올림 량(carry amount)이 상기 어드레스 오프셋의 제 2 서브셋의 한 개 이상의 비트들의 그룹과 다를 때, 상기 취소 검출기는 상기 제어회로에 상기 취소 표시를 제공하도록 구성된 데이터 스토리지 장치.
  8. 제 1항에 있어서,
    한 개 이상의 최근에 액세스된 데이터 항목들에 관련된 정보를 제 2 스토리지 장치에 기억하는 제 1 스토리지 장치를 구비하고,
    상기 참조 어드레스는 상기 제 1 스토리지 장치에 정보가 유지되는 상기 데이터 항목들 중에서 한 개의 메모리 어드레스이고,
    상기 테스트 어드레스는 현재 필요한 데이터 항목의 어드레스인 데이터 스토리지 장치.
  9. 제 8항에 있어서,
    상기 제어회로는, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이에 일치가 검출되는지 여부에 따라, 상기 제 2 스토리지 장치에 대한 액세스를 선택적으로 인에이블하거나 디스에이블하도록 구성된 데이터 스토리지 장치.
  10. 제 9항에 있어서,
    상기 제어회로는, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이에 일치가 검출될 때, 상기 제 2 스토리지 장치에 대한 액세스를 디스에이블하도록 구성된 데이터 스토리지 장치.
  11. 제 1항에 있어서,
    상기 참조 메모리 어드레스, 상기 기저 어드레스 및 상기 어드레스 오프셋 각각은 동일한 수의 비트를 포함하는 데이터 스토리지 장치.
  12. 멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 검출수단을 구비하고, 상기 검출수단은,
    제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 수단과,
    제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 수단과,
    상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하는 수단과,
    일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 수단을 구비한 데이터 스토리지 장치.
  13. 멀티 비트 참조 메모리 어드레스와, 멀티 비트 기저 어드레스와 멀티 비트 어드레스 오프셋의 조합인 테스트 어드레스 사이의 일치를 검출하는 단계를 포함하고, 상기 검출단계는,
    제 1 비교로서, 상기 참조 메모리 어드레스의 제 1 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 1 서브셋의 비트들과 상기 어드레스 오프셋의 대응하는 제 1 서브셋의 비트들의 조합과 비교하는 단계와,
    제 2 비교로서, 상기 참조 메모리 어드레스의 제 2의 다른 서브셋의 비트들을 상기 기저 어드레스의 대응하는 제 2 서브셋의 비트들과 비교하는 단계와,
    상기 제 1 비교 및 상기 제 2 비교 모두가 각각의 일치를 검출할 때, 상기 참조 메모리 어드레스와 상기 테스트 어드레스 사이의 일치를 검출하는 단계와,
    일치가 검출될 때, 상기 참조 메모리 어드레스에 따라 데이터 스토리지 장치의 동작을 제어하는 단계를 포함하는, 데이터 스토리지의 작동방법.
KR1020170024646A 2016-02-25 2017-02-24 데이터 스토리지 KR20170100448A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1603295.5 2016-02-25
GB1603295.5A GB2547893B (en) 2016-02-25 2016-02-25 Combining part of an offset with a corresponding part of a base address and comparing with a reference address

Publications (1)

Publication Number Publication Date
KR20170100448A true KR20170100448A (ko) 2017-09-04

Family

ID=55806931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170024646A KR20170100448A (ko) 2016-02-25 2017-02-24 데이터 스토리지

Country Status (4)

Country Link
US (1) US10310735B2 (ko)
KR (1) KR20170100448A (ko)
CN (1) CN107122128B (ko)
GB (1) GB2547893B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200055267A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 메모리 시스템 및 테스트 시스템
CN110703998B (zh) * 2019-09-29 2021-11-09 百度在线网络技术(北京)有限公司 存储器的控制方法、控制器、芯片及电子设备
IT202000016441A1 (it) * 2020-07-07 2022-01-07 Sk Hynix Inc Comparatore di risorse di ridondanza per una architettura di bus, architettura di bus per un dispositivo di memoria che implementa un metodo migliorato di confronto e corrispondente metodo di confronto
CN117217977A (zh) * 2023-05-26 2023-12-12 摩尔线程智能科技(北京)有限责任公司 Gpu的数据访问处理方法、装置及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231047A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd アドレス変換方法および装置
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5606683A (en) * 1994-01-28 1997-02-25 Quantum Effect Design, Inc. Structure and method for virtual-to-physical address translation in a translation lookaside buffer
US5895503A (en) * 1995-06-02 1999-04-20 Belgard; Richard A. Address translation method and mechanism using physical address information including during a segmentation process
US6813699B1 (en) * 1995-06-02 2004-11-02 Transmeta Corporation Speculative address translation for processor using segmentation and optional paging
US5987584A (en) * 1996-09-17 1999-11-16 Vlsi Technology, Inc. Wavetable address cache to reduce accesses over a PCI bus
US6047365A (en) * 1996-09-17 2000-04-04 Vlsi Technology, Inc. Multiple entry wavetable address cache to reduce accesses over a PCI bus
US6189074B1 (en) * 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6643739B2 (en) * 2001-03-13 2003-11-04 Koninklijke Philips Electronics N.V. Cache way prediction based on instruction base register
GB0407384D0 (en) * 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) * 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8635431B2 (en) * 2010-12-08 2014-01-21 International Business Machines Corporation Vector gather buffer for multiple address vector loads
CN102841865B (zh) * 2011-06-24 2016-02-10 上海芯豪微电子有限公司 高性能缓存系统和方法
US9367475B2 (en) * 2012-04-05 2016-06-14 Freescale Semiconductor, Inc. System and method for cache access
US20160217079A1 (en) * 2013-02-08 2016-07-28 Shanghai Xinhao Microelectronics Co., Ltd. High-Performance Instruction Cache System and Method
US9239801B2 (en) * 2013-06-05 2016-01-19 Intel Corporation Systems and methods for preventing unauthorized stack pivoting
US9460016B2 (en) * 2014-06-16 2016-10-04 Analog Devices Global Hamilton Cache way prediction
CN104408163B (zh) * 2014-12-05 2018-09-14 浪潮(北京)电子信息产业有限公司 一种数据分级存储方法和装置
US9934150B1 (en) * 2015-10-21 2018-04-03 Marvell International Ltd. Data caching circuit and method

Also Published As

Publication number Publication date
GB2547893A (en) 2017-09-06
GB2547893B (en) 2018-06-06
CN107122128A (zh) 2017-09-01
US10310735B2 (en) 2019-06-04
GB201603295D0 (en) 2016-04-13
US20170249085A1 (en) 2017-08-31
CN107122128B (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
US7065632B1 (en) Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
EP3394757B1 (en) Hardware apparatuses and methods for memory corruption detection
US11347507B2 (en) Secure control flow prediction
EP2159706B1 (en) Operation processing apparatus and operation processing method
JP3745819B2 (ja) ノン・フォルティング・ロード命令をインプリメントする方法及び装置
JPH02232753A (ja) デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置
JPH02260033A (ja) ブランチ予測
US5961633A (en) Execution of data processing instructions
KR20170100448A (ko) 데이터 스토리지
US9003171B2 (en) Page fault prediction for processing vector instructions
DK171728B1 (da) Databehandlingsapparat
KR100335744B1 (ko) 로드/로드 검출 및 재정렬 방법
US11138128B2 (en) Controlling guard tag checking in memory accesses
CN113228024A (zh) 用于推测执行的安全预测器
EP3454219A1 (en) An apparatus and method for efficient utilisation of an address translation cache
KR100354465B1 (ko) 어드레스 변환 회로
JP2001222470A (ja) トランスレーション・ルックアサイド・バッファ回路
KR100308674B1 (ko) 멀티사이클데이터캐쉬판독을위한데이터레지스터
CN108463810B (zh) 存储器地址变换管理
JPH11316695A (ja) ス―パ―スカラ―マイクロプロセッサ―の停止点インタ―ラプト発生装置
WO2017112359A1 (en) Method and apparatus for loop-invariant instruction detection and elimination
US20050228951A1 (en) Virtualized load buffers
CN117063155A (zh) 检测卸载操作中的执行风险
EP3769249A1 (en) Systems, methods, and apparatuses for defending against cross-privilege linear probes

Legal Events

Date Code Title Description
A201 Request for examination