KR101306623B1 - 캐시메모리의 캐시 웨이 락킹방법 - Google Patents

캐시메모리의 캐시 웨이 락킹방법 Download PDF

Info

Publication number
KR101306623B1
KR101306623B1 KR1020110080471A KR20110080471A KR101306623B1 KR 101306623 B1 KR101306623 B1 KR 101306623B1 KR 1020110080471 A KR1020110080471 A KR 1020110080471A KR 20110080471 A KR20110080471 A KR 20110080471A KR 101306623 B1 KR101306623 B1 KR 101306623B1
Authority
KR
South Korea
Prior art keywords
cache
bit
way
line
cache line
Prior art date
Application number
KR1020110080471A
Other languages
English (en)
Other versions
KR20130017813A (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 주식회사 에이디칩스
Priority to KR1020110080471A priority Critical patent/KR101306623B1/ko
Publication of KR20130017813A publication Critical patent/KR20130017813A/ko
Application granted granted Critical
Publication of KR101306623B1 publication Critical patent/KR101306623B1/ko

Links

Images

Classifications

    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 캐시메모리의 캐시 웨이 락킹방법은 특정 캐시 웨이의 락킹을 위해 웨이락비트 판단단계를 수행한 후 프로세서는 하나의 명령어 또는 두 개의 명령어들을 처리하여 캐시 웨이를 락킹하도록 하여 프로세서의 명령어 접근 시간을 감소시켜 캐시 웨이 락킹 동작시 프로세서 및 캐시에서 소비되는 전력을 감소시킬 수 있고, 캐시 웨이 락킹 수행시 수행 속도를 빠르게 할 수 있다.

Description

캐시메모리의 캐시 웨이 락킹방법{cache way locking method of cache memory}
본 발명은 캐시메모리의 캐시 웨이 락킹방법에 관한 것으로, 캐시메모리의 특정 캐시 웨이의 락킹을 위해 프로세서는 하나의 명령어 또는 두 개의 명령어들을 처리하여 캐시 웨이를 락킹하도록 하여 프로세서의 명령어 접근 시간을 감소시켜 캐시 웨이 락킹 동작시 프로세서 및 캐시에서 소비되는 전력을 감소시킬 수 있고, 캐시 웨이 락킹 수행시 수행 속도를 빠르게 할 수 있는 캐시메모리의 캐시 웨이 락킹방법에 관한 것이다.
일반적으로 캐시메모리(Cache Memory)는 처리속도가 상대적으로 고속인 프로세서(processor)와 상대적으로 저속인 주메모리(Main Memory) 사이에서 일시적으로 정보를 저장하는 고속의 기억장치이다. 이러한 캐시메모리는 공유 프로그램의 수행시 참조집약성(locality of reference)을 이용하여 컴퓨터의 처리속도를 빠르게 할 수 있다. 즉, 컴퓨터프로그램이 수행될 때 프로세서가 접근하는 주메모리 내의 주소를 관찰하면 어느 한정된 시간에 주메모리의 한두 영역만이 집중적으로 접근되는 관찰할 수 있으며, 이를 공간의 집약성이라 한다. 이러한 성질을 이용하여 주메모리와 프로세서의 사이에 고속의 캐시메모리를 두어 여기에 자주 사용되는 주메모리의 일부 영역을 저장함으로써, 프로세서가 주메모리를 접근하는데 걸리는 시간을 대폭 단축할 수 있다.
도 1은 일반적인 4개의 32비트 워드(word)로 구성된 4 웨이(way) 캐시메모리를 가진 캐시 구조의 블럭도이다.
캐시는 캐시메모리(10)와 캐시제어기(20)와 캐시 웨이의 락킹 상태를 나타내는 웨이락비트 저장부(11)로 구성된다.
도 1의 4 웨이의 캐시메모리(10)는 4개의 캐시 웨어(10a,10b,10c,10d)로 구성되며, 각각의 캐시 웨어는 캐시태그데이터(CTAG)가 저장된 캐시태그 저장부(1)와 캐시데이터가 저장된 캐시데이터 저장부(3)와 라인락비트( Lock Bit :L), 유효비트(Valid Bit :V) 및 더티비트(Dirty Bit:D)들로 구성된 상태정보가 저장된 캐시상태 저장부(5)로 구성된다.
캐시메모리(10)는 캐시 라인 안에 저장되어 있는 정보가 주메모리의 어느 영역에 해당되는지 알아야 하는데 캐시태그 저장부(1)의 캐시태그데이터(CTAG)를 통하여 캐시 라인 안에 저장되어 있는 정보가 주메모리의 어느 영역의 주소인지 알 수 있으며, 캐시메모리(10)는 주메모리에서 읽어온 데이터를 저장하고 있으며, 이는 캐시데이터 저장부(3)에 저장된 캐시데이터이다.
캐시제어기(20)는 읽기(read) 및 쓰기(write)를 위한 메모리 요청을 메모리 컨트롤러에게 보내기 전에 가로채며, 이때 메모리요청주소(MA)는 태그(Tag), 인덱스(Index) 및 오프셋(Offset)의 세 부분으로 나누어 처리된다. 캐시제어기(20)는 캐시메모리(10)의 캐시 라인을 찾기 위해 메모리요청주소(MA)의 인덱스(Index)를 사용하여 인덱스에 의해 선택된 캐시 라인은 캐시태그 저장부(1)의 캐시태그데이터(CTAG)와 캐시상태 저장부(5)의 유효비트(V)와 더티비트(D)와 라인락비트(L)를 이용하여 캐시데이터의 사용 가능 여부를 결정한다. 만약 캐시데이터가 사용 가능하면 캐시 히트(hit)라 하고, 그렇지 않을 경우 캐시 미스(miss)라고 한다.
캐시 미스이면 캐시제어기(20)는 주메모리에서 미스된 캐시 라인의 모든 정보를 캐시메모리(10)로 복사하고 프로세서로부터 요청된 데이터를 프로세서로 전송하며, 캐시 히트인 경우에는 캐시제어기(20)는 캐시메모리(10)에 저장된 캐시데이터를 프로세서에 전송한다.
캐시상태 저장부(5)에 저장된 유효비트(V)가 활성화되어 있으면 캐시데이터 저장부(3)에 저장된 캐시데이터는 유효한 데이터임을 나타내며, 더티비트(D)는 캐시 라인 안에 저장되어 있는 캐시데이터와 주메모리 안에 저장되어 있는 데이터가 일치하는지를 결정하는 비트이고, 라인락비트(L)는 해당 캐시 라인의 캐시데이터가 교체(Replacement)될 수 있는지의 유무를 나타낸다. 즉, 라인락비트(L)가 활성화되어 있으면 해당 캐시 라인에 저장된 캐시데이터는 캐시데이터의 교체에서 면제되었음을 나타낸다.
웨이락비트 저장부(11)는 각 캐시 웨이(10a,10b,10c,10d)가 락킹 상태인지를 나타내는 것으로서, 도 1에 도시된 바와 같이 캐시메모리(10)는 캐시 웨이가 4개이므로 웨이락비트 저장부(WL)는 4비트로 구성되어, 첫번째 캐시 웨이의 웨이락비트(WL1)와, 두번째 캐시 웨이의 웨이락비트(WL2)와, 세번째 캐시 웨이의 웨이락비트(WL3)와 네번째 캐시 웨이의 웨이락비트(WL4)로 구성된다. 예를 들어 첫번째 캐시 웨이(10a)의 웨이락비트(WL1)가 유효논리값을 가져 활성화되어 있다면, 첫번째 캐시 웨이(10a)는 락킹 상태인 것을 알 수 있으며, 첫번째 캐시 웨이(10a)가 락킹 상태이면 첫번째 캐시 웨이(10a)의 모든 캐시 라인의 라인락비트(L)는 모두 활성화되며, 모든 캐시 라인의 각각의 캐시데이터는 주메모리에 저장된 락킹데이터로 교체되어, 캐시 미스가 발생되더라도 교체에서 면제된다.
이와 같이 특정 캐시 웨이가 락킹되면 캐시의 영역이 줄어들기 때문에 사용 가능한 캐시의 크기는 감소되게 되나, 특정 캐시 웨이를 락킹시켜 주어 미스 패널티(miss penalty)에 의한 예기치 못한 실행시간의 문제점을 피할 수 있다.
도 2는 종래의 캐시메모리의 캐시 웨이 락킹방법의 순서도이고, 도 3은 도 2의 선택된 웨이의 캐시 라인 초기화단계의 순서도이고, 도 4는 도 2의 선택된 웨이의 락킹데이터 저장단계의 순서도이고, 도 5는 도 2의 선택된 웨이의 라인락비트 와 웨이락비트 갱신단계의 순서도이다.
도 2에 도시된 바와 같이 종래의 캐시메모리의 캐시 웨이 락킹방법은 사용자에 의해 특정 웨이에 락을 설정하기 위해 사용자에 의해 선택된 웨이의 웨이락비트를 판독하는 웨이락비트 판독단계(S10)와, 웨이락비트 판독단계에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판독단계(S20)와, 웨이락비트 판독단계(S20)에서 웨이락비트(WL)가 비활성화되면 선택된 캐시 웨이의 모든 캐시라인을 초기화시키기 위하여 프로세서와 캐시제어기에 의해 캐시 웨이의 초기화 명령어를 수행하여 선택된 웨이의 모든 캐시 라인에 대해서 초기화를 수행한 후 각 라인의 유효비트(V)를 비활성화시키는 선택된 웨이의 캐시라인 초기화단계(S30)와, 선택된 웨이의 각 캐시 라인의 캐시데이터 저장부(3)에 주메모리로부터 로딩된 락킹데이터를 저장하고 각 캐시 라인의 유효비트(V)를 활성화시키기 위해 프로세서와 캐시제어기에 의해 락킹데이터 저장명령어를 수행하는 선택된 웨이의 락킹데이터 저장단계(S40)와, 선택된 웨이의 각 캐시 라인의 라인락비트(L)을 활성화시키고, 선택된 웨이의 웨이락비트(WL)를 활성화시키기 위해 프로세서와 캐시제어기에 의해 락비트 갱신명령어를 수행하는 선택된 웨이의 라인락비트와 웨이락비트 갱신단계(S50)로 구성된다.
도 3에 도시된 바와 같이 선택된 웨이의 캐시라인 초기화단계(S30)는 프로세서에 의해 실행되는 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 패치하고, 패치된 초기화명령어를 디코더에 의해 디코딩하고, 디코딩된 초기화명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 초기화명령어 수행단계(S31)와, 캐시제어기(20)로 전송된 초기화명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 선택된 웨이의 캐시라인별 상태정보 판독단계(S32)와, 선택된 웨이의 캐시라인별 상태정보 판독단계(S32)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 유효비트와 더티비트 판단단계(S33)와, 유효비트와 더티비트 판단단계(S33)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 캐시 라인의 캐시데이터를 저장하고 더티비트(D)를 비활성화시키는 카피백단계(S34)와, 유효비트와 더티비트 판단단계(S33)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 카피백단계(S34) 완료 후 선택된 캐시 라인의 유효비트(V)를 비활성화시키는 캐시초기화단계(S35)와, 상기 캐시초기화단계(S35)에서 초기화가 수행되는 현재 선택된 캐시 라인이 선택된 웨이의 마지막 캐시라인인지를 판단하여 마지막 캐시라인이면 종료하고, 마지막 캐시라인이 아니면 선택된 웨이의 캐시라인별 상태정보 판독단계(S32)를 수행하는 마지막 캐시라인 판단단계(S36)로 구성된다.
이와 같이 선택된 웨이의 캐시라인 초기화단계(S30)를 수행하기 위해 선택된 웨이의 초기화명령어 수행단계(S31)는 프로세서에 접근하여 프로세서에 의해 수행되고, 선택된 웨이의 캐시라인별 상태정보 판독단계(S32), 유효비트와 더티비트 판단단계(S33), 카피백단계(S34), 캐시초기화단계(S35) 및 마지막 캐시라인 판단단계(S36)는 캐시제어기(20)에 의해 수행된다.
캐시제어기(20)에 의해 수행되는 선택된 웨이의 캐시라인별 상태정보 판독단계(S32), 유효비트와 더티비트 판단단계(S33), 카피백단계(S34), 캐시초기화단계(S35) 및 마지막 캐시라인 판단단계(S36)에 의해 선택된 웨이의 모든 캐시 라인에 대해서 초기화가 진행되어 각 캐시 라인에 저장되는 유효비트(V)는 무효논리값을 갖는 비활성화 상태가 된다.
도 4에 도시된 바와 같이 선택된 웨이의 락킹데이터 저장단계(S40)는 선택된 웨이의 각 캐시 라인의 캐시데이터 저장부(3)에 주메모리로부터 로딩(loading)된 락킹데이터를 저장하고 각 캐시 라인의 유효비트(V)를 활성화시키기 위한 락킹데이터 저장명령어를 패치하고, 패치된 락킹데이터 저장명령어를 디코더에 의해 디코딩하고, 디코딩된 락킹데이터 저장명령어를 캐시제어기(20)로 전송하도록 프로세서에 의해 수행되는 선택된 웨이의 락킹데이터 저장명령어 수행단계(S41)와, 캐시제어기(20)로 전송된 락킹데이터 저장명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 선택된 웨이의 캐시라인별 상태정보 판독단계(S42)와, 선택된 웨이의 캐시라인별 상태정보 판독단계(S42)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 유효비트와 더티비트 판단단계(S43)와, 유효비트와 더티비트 판단단계(S43)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 캐시 라인의 캐시데이터를 저장하고 더티비트(D)를 비활성화시키는 카피백단계(S44)와, 유효비트와 더티비트 판단단계(S43)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 카피백단계(S44) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 캐시 라인의 캐시데이터 저장부(3)에 저장하는 락킹데이터 저장단계(S45)와, 락킹데이터 저장단계(S45)에서 락킹데이터가 저장되는 현재 선택된 캐시 라인이 선택된 웨이의 마지막 캐시라인인지를 판단하여 마지막 캐시라인이면 종료하고, 마지막 캐시라인이 아니면 선택된 웨이의 캐시라인별 상태정보 판독단계(S42)를 수행하는 마지막 캐시라인 판단단계(S46)로 구성된다.
이와 같이 선택된 웨이의 락킹데이터 저장단계(S40)를 수행하기 위해 선택된 웨이의 락킹데이터 저장명령어 수행단계(S41)는 프로세서에 접근하여 프로세서에 의해 수행되고, 선택된 웨이의 캐시라인별 상태정보 판독단계(S42), 유효비트와 더티비트 판단단계(S43), 카피백단계(S44), 락킹데이터 저장단계(S45) 및 마지막 캐시라인 판단단계(S46)는 캐시제어기(20)에 의해 수행된다.
캐시제어기(20)에 의해 수행되는 선택된 웨이의 캐시라인별 상태정보 판독단계(S42), 유효비트와 더티비트 판단단계(S43), 카피백단계(S44), 락킹데이터 저장단계(S45) 및 마지막 캐시라인 판단단계(S46)에 의해 선택된 웨이의 각 캐시 라인의 캐시데이터 저장부(3)에는 락킹하기 위한 락킹데이터가 저장되고, 각 캐시 라인의 유효비트(V)는 유효논리값을 갖는 활성화 상태가 된다.
도 5에 도시된 바와 같이 선택된 웨이의 라인락비트와 웨이락비트 갱신단계(S50)는 선택된 웨이의 각 캐시 라인의 라인락비트(L)을 활성화시키고, 선택된 웨이의 웨이락비트(WL)를 활성화시키기 위한 락비트 갱신명령어를 패치하고, 패치된 락비트 갱신명령어를 디코더에 의해 디코딩하고, 디코딩된 락비트 갱신명령어를 캐시제어기(20)로 전송하도록 프로세서에 의해 수행되는 선택된 웨이의 락비트 갱신명령어 수행단계(S51)와, 캐시제어기(20)로 전송된 락비트 갱신명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 캐시 라인의 캐시상태 저장부(5)에 저장된 라인락비트(L)를 유효논리값을 갖도록 활성화시키는 현재 캐시라인의 라인락비트 갱신단계(S52)와, 현재 캐시라인의 라인락비트 갱신단계(S52)에서 현재 선택된 캐시 라인이 선택된 웨이의 마지막 캐시라인인지를 판단하여 마지막 캐시라인이 아니면 현재 캐시라인의 라인락비트 갱신단계(S52)를 수행하는 마지막 캐시라인 판단단계(S53)와, 마지막 캐시라인 판단단계(S53)에서 현재 선택된 캐시 라인이 마지막 캐시라인이면 선택된 웨이의 웨이락비트(WL)를 유효논리값을 갖도록 활성화시키는 선택된 웨이의 웨이락비트 갱신단계(S54)로 구성된다.
이와 같이 선택된 웨이의 라인락비트와 웨이락비트 갱신단계(S50)를 수행하기 위해 선택된 웨이의 락비트 갱신명령어 수행단계(S51)는 프로세서에 접근하여 프로세서에 의해 수행되고, 현재 캐시라인의 라인락비트 갱신단계(S52), 마지막 캐시라인 판단단계(S53) 및 선택된 웨이의 웨이락비트 갱신단계(S54)는 캐시제어기(20)에 의해 수행된다.
캐시제어기(20)에 의해 수행되는 현재 캐시라인의 라인락비트 갱신단계(S52), 마지막 캐시라인 판단단계(S53) 및 선택된 웨이의 웨이락비트 갱신단계(S54)에 의해 선택된 웨이의 첫번째 캐시 라인에서 마지막 캐시라인에 대해서 각 캐시 라인의 캐시상태 저장부(5)의 라인락비트(L)를 무효논리값에서 유효논리값을 갖도록 갱신해주고, 웨이락비트(WL)를 무효논리값에서 유효논리값을 갖도록 갱신해주어 선택된 웨이에 대한 락킹 설정을 종료한다.
상기와 같이 종래의 캐시메모리의 캐시 웨이 락킹방법은 선택된 웨이의 웨이락비트(WL)를 활성화시키고, 선택된 웨이의 모든 캐시 라인의 라인락비트(L)를 활성화시켜 선택된 웨이를 락킹하기 위해 웨이락비트 판단단계(S20) 이후에 선택된 웨이의 캐시라인 초기화단계(S30)를 수행하기 위해 프로세서에 의해 명령어를 패치하고, 패치된 명령어를 디코딩하고, 디코딩한 명령어를 실행하여야 하고, 또한 상기와 동일하게 선택된 웨이의 락킹데이터 저장단계(S40)와 선택된 웨이의 라인락비트와 웨이락비트 갱신단계(S50)에서도 각각 프로세서에 의해 명령어를 패치하고, 패치된 명령어를 디코딩하고, 디코딩한 명령어를 실행하여야 하므로 선택된 웨이를 락킹하기 위해 세 번 프로세서에 접근하여 프로세서에 의해 수행하게 되어 잦은 프로세서 접근에 따라 선택된 웨이 락킹 동작을 위해 프로세서 및 캐시에서 소비되는 전력이 증가되고, 캐시 웨이 락킹 동작시 수행 속도가 느려지는 문제점을 가지고 있다.
본 발명의 목적은 캐시메모리의 특정 캐시 웨이의 락킹을 위해 웨이락비트 판단단계 이후에 프로세서는 하나의 명령어 또는 두 개의 명령어들을 처리하여 캐시 웨이를 락킹하도록 하여 프로세서의 명령어 접근 시간을 감소시켜 캐시 웨이 락킹 동작시 프로세서 및 캐시에서 소비되는 전력을 감소시킬 수 있고, 캐시 웨이 락킹 수행시 수행 속도를 빠르게 할 수 있는 캐시메모리의 캐시 웨이 락킹방법을 제공하는 데 있다.
상기의 목적을 달성하기 위하여 본 발명의 캐시메모리의 캐시 웨이 락킹방법은 캐시태그데이터가 저장된 캐시태그 저장부, 유효비트와 더티비트와 라인락비트가 저장된 캐시상태 저장부 및 캐시데이터가 저장된 캐시데이터 저장부로 구성된 다수의 캐시 웨이들과 각 캐시 웨이들의 락킹 유무를 나타내는 웨이락비트들이 저장된 웨이락비트 저장부를 구비한 캐시메모리에 대해서 상기 다수의 캐시 웨이들 중 사용자에 의해 특정 캐시 웨이를 락킹하기 위한 캐시메모리의 캐시 웨이 락킹방법에 있어서, 사용자에 의해 상기 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트를 판독하는 웨이락비트 판독단계; 상기 웨이락비트 판독단계에서 판독된 웨이락비트의 활성화 유무를 판단하는 웨이락비트 판단단계; 및 상기 웨이락비트 판단단계에서 웨이락비트가 비활성화되면 프로세서에 의해 상기 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 수행하고, 수행된 락킹명령어에 따라 캐시제어기에 의해 상기 선택된 캐시 웨이를 락킹시키는 캐시웨이 락킹단계를 구비하며,
상기 캐시웨이 락킹단계는 상기 웨이락비트 판단단계에서 웨이락비트가 비활성화되면 프로세서에 의해 상기 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 패치하고, 패치된 락킹명령어를 디코더에 디코딩하고, 디코딩된 락킹명령어를 캐시제어기로 전송하는 선택된 웨이의 락킹명령어 수행단계; 상기 캐시제어기로 전송된 락킹명령어에 따라 상기 선택된 캐시 웨이에 대해서 메모리요청주소의 인덱스에 의해 선택된 현재 캐시 라인의 캐시상태 저장부에 저장된 유효비트와 더티비트를 판독하는 선택된 웨이의 캐시라인별 상태정보 판독단계; 상기 선택된 웨이의 캐시라인별 상태정보 판독단계에서 판독된 유효비트와 더티비트의 활성화 유무를 판단하는 유효비트와 더티비트 판단단계; 상기 유효비트와 더티비트 판단단계에서 유효비트와 더티비트가 모두 활성화되어 있으면 선택된 현재 캐시 라인의 캐시데이터 저장부에 저장된 캐시데이터를 메모리요청주소에 따른 주메모리에 저장하고, 더티비트를 비활성화시키는 카피백단계; 상기 유효비트와 더티비트 판단단계에서 유효비트와 더티비트가 모두 활성화되어 있지 않거나 상기 카피백단계 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부에 저장하고, 현재 캐시 라인의 캐시상태저장부에 저장된 유효비트와 라인락비트를 활성화시키는 캐시라인 락킹단계; 상기 캐시라인 락킹단계에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 상기 선택된 웨이의 캐시라인별 상태정보 판독단계를 수행하는 마지막 캐시라인 판단단계; 및 상기 마지막 캐시라인 판단단계에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트를 활성화시키는 웨이락비트 갱신단계를 구비한 것을 특징으로 한다.
삭제
본 발명의 캐시메모리의 캐시 웨이 락킹방법은 캐시메모리의 특정 캐시 웨이의 락킹을 위해 웨이락비트 판단단계 이후에 프로세서는 하나의 명령어 또는 두 개의 명령어들을 처리하여 캐시 웨이를 락킹하도록 하여 프로세서의 명령어 접근 시간을 감소시켜 캐시 웨이 락킹 동작시 프로세서 및 캐시에서 소비되는 전력을 감소시킬 수 있고, 캐시 웨이 락킹 수행시 수행 속도를 빠르게 할 수 있다.
도 1은 일반적인 4개의 32비트 워드(word)로 구성된 4웨이 캐시메모리를 가진 캐시 구조의 블럭도,
도 2는 종래의 캐시메모리의 캐시 웨이 락킹방법의 순서도이고,
도 3은 도 2의 선택된 웨이의 캐시 라인 초기화단계의 순서도이고,
도 4는 도 2의 선택된 웨이의 락킹데이터 저장단계의 순서도이고,
도 5는 도 2의 선택된 웨이의 라인락비트 와 웨이락비트 갱신단계의 순서도이고,
도 6은 본 발명의 캐시메모리의 캐시 웨이 락킹방법의 순서도이고,
도 7은 본 발명의 다른 실시예인 캐시메모리의 캐시 웨이 락킹방법의 순서도이고,
도 8은 도 7의 선택된 웨이의 캐시 라인 초기화단계의 순서도이고,
도 9는 도 7의 선택된 웨이의 락명령어 수행단계의 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 캐시메모리의 캐시 웨이 락킹방법을 상세히 설명하고자 한다.
도 6은 본 발명의 캐시메모리의 캐시 웨이 락킹방법의 순서도이고, 도 7은 본 발명의 다른 실시예인 캐시메모리의 캐시 웨이 락킹방법의 순서도이고, 도 8은 도 7의 선택된 웨이의 캐시 라인 초기화단계의 순서도이고, 도 9는 도 7의 선택된 웨이의 락명령어 수행단계의 순서도이다.
도 6에 도시된 바와 같이 본 발명의 캐시메모리의 캐시 웨이 락킹방법은 사용자에 의해 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트(WL)를 판독하는 웨이락비트 판독단계(S100)와, 웨이락비트 판독단계(S100)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판독단계(S110)와, 웨이락비트 판단단계(S110)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 수행하고, 수행된 락킹명령어에 따라 캐시제어기(20)에 의해 선택된 캐시 웨이를 락킹시키는 캐시웨이 락킹단계(S190)로 구성된다.
캐시웨이 락킹단계(S190)는 웨이락비트 판독단계(S110)에서 판독된 웨이락비트(WL)가 비활성화되면 프로세서에 의해 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 패치하고, 패치된 락킹명령어를 디코더에 디코딩하고, 디코딩된 락킹명령어를 캐시제어기로 전송하는 선택된 웨이의 락킹명령어 수행단계(S120)와, 캐시제어기(20)로 전송된 락킹명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)와, 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 유효비트와 더티비트 판단단계(S140)와, 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 메모리요청주소(MA)에 따른 주메모리에 저장하고, 더티비트(D)를 비활성화시키는 카피백단계(S150)와, 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 카피백단계(S150) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시키는 캐시라인 락킹단계(S160)와, 캐시라인 락킹단계(S160)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)를 수행하는 마지막 캐시라인 판단단계(S170)와, 마지막 캐시라인 판단단계(S170)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 웨이락비트 갱신단계(S180)로 구성된다.
도 7에 도시된 바와 같이 본 발명의 다른 실시예인 캐시메모리의 캐시 웨이 락킹방법은 사용자에 의해 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트(WL)를 판독하는 웨이락비트 판독단계(S210)와, 웨이락비트 판독단계(S210)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판단단계(S220)와, 웨이락비트 판단단계(S220)에서 웨이락비트(WL)가 비활성화되면, 프로세서에 의해 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 수행하고, 프로세서에 의해 수행된 초기화명령어에 따라 캐시제어기(20)에 의해 선택된 캐시 웨이의 각 캐시 라인에 대해서 초기화를 수행하는 선택된 웨이의 캐시라인 초기화단계(S230)와, 선택된 웨이의 캐시라인 초기화단계(S230) 후 프로세서에 의해 선택된 캐시 웨이의 각 캐시 라인에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트와 선택된 캐시 웨이의 웨이락비트를 갱신하기 위한 락명령어를 수행하고, 프로세서에 의해 수행된 락명령어에 따라 캐시제어기(20)에 의해 선택된 캐시 웨이의 각 캐시 라인에 대해서 주메모리에 저장된 락킹데이타를 캐시데이터 저장부(3)에 저장하고, 각 캐시 라인의 라인락비트(L)를 활성화시키고, 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 선택된 웨이의 락명령어 수행단계(240)로 구성된다.
도 8에 도시된 바와 같이 선택된 웨이의 캐시라인 초기화단계(S230)는 웨이락비트 판단단계(S220)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 패치하고, 패치된 초기화명령어를 디코더에 의해 디코딩하고, 디코딩된 초기화명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 초기화명령어 수행단계(S231)와, 캐시제어기(20)로 전송된 초기화명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제1 캐시라인별 상태정보 판독단계(S232)와, 제1 캐시라인별 상태정보 판독단계(S232)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제1 유효비트와 더티비트 판단단계(S233)와, 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제1 카피백단계(S234)와, 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 제1 카피백단계(S234) 완료 후 선택된 현재 캐시 라인의 유효비트(V)를 비활성화시키는 캐시라인 초기화단계(S235)와, 캐시라인 초기화단계(S235)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 제1 캐시라인별 상태정보 판독단계(S232)를 수행하고, 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 캐시 라인의 초기화를 종료하는 제1 마지막 캐시라인 판단단계(S236)로 구성된다.
도 9에 도시된 바와 같이 선택된 웨이의 락명령어 수행단계(240)는
프로세서에 의해 상기 선택된 캐시 웨이의 각 캐시라인의 캐시데이터 저장부(3)에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트와 선택된 캐시 웨이의 웨이락비트를 갱신하기 위한 락명령어를 패치하고, 패치된 락명령어를 디코더에 의해 디코딩하고, 디코딩된 락명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 락명령어 수행단계(S241)와, 캐시제어기(20)로 전송된 락명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제2 캐시라인별 상태정보 판독단계(S242)와, 제2 캐시라인별 상태정보 판독단계(S242)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제2 유효비트와 더티비트 판단단계(S243)와, 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제2 카피백단계(S244)와, 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 상기 제2 카피백단계(S244) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시키는 캐시라인 락킹단계(S245)와, 캐시라인 락킹단계(S245)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 제2 캐시라인별 상태정보 판독단계(S242)를 수행하는 제2 마지막 캐시라인 판단단계(S246)와, 제2 마지막 캐시라인 판단단계(S246)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 웨이락비트 갱신단계(S247)로 구성된다.
상기의 구성에 따른 본 발명인 캐시메모리의 캐시 웨이 락킹방법의 동작은 다음과 같다.
도 6에 도시된 바와 같이 본 발명의 실시예인 캐시메모리의 캐시 웨이 락킹방법의 동작을 살펴보면 다음과 같다.
웨이락비트 판독단계(S100)는 사용자에 의해 다수의 캐시 웨이(10a,10b,10c,10d)들 중 특정의 캐시 웨이에 락킹을 하고자 할 경우 락킹을 하고자 하는 특정 웨이를 선택하여 웨이락비트 저장부(11)에 저장된 선택된 캐시 웨이의 웨이락비트(WL)를 판독한다.
웨이락비트 판단단계(S110)는 웨이락비트 판독단계(S100)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하며, 웨이락비트 판단단계(S110)에서 선택된 캐시 웨이의 웨이락비트(WL)가 유효논리값을 갖는 활성화 상태에 있으면, 선택된 캐시 웨이에 대해서는 이미 락킹이 설정되어 있으므로, 사용자는 웨이락비트 판독단계(S100)를 다시 수행하여 다른 캐시 웨이를 선택하여 캐시 웨이 락킹을 수행한다.
웨이락비트 판독단계(S110)에서 판독된 웨이락비트(WL)가 비활성화되면, 즉 선택된 캐시 웨이의 웨이락비트(WL)가 무효논리값을 가지고 있으며, 선택된 캐시 웨이에 대해 락킹을 설정할 수 있으므로, 선택된 웨이의 락킹명령어 수행단계(S120)는 프로세서에 의해 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 패치하고, 패치된 락킹명령어를 디코더에 디코딩하고, 디코딩된 락킹명령어를 캐시제어기(20)로 전송한다.
캐시제어기(20)로 전송된 락킹명령어에 따라, 캐시제어기(20)는 선택된 웨이의 캐시라인별 상태정보 판독단계(S130), 유효비트와 더티비트 판단단계(S140), 카피백단계(S150), 캐시라인 락킹단계(S160), 마지막 캐시라인 판단단계(S170) 및 웨이락비트 갱신단계(S180)로 구성된 캐시웨이 락킹단계(S190)를 수행하여 선택된 캐시 웨이에 대해 락킹 설정을 완료한다.
이와 같이 본 발명의 캐시메모리의 캐시 웨이 락킹방법은 웨이락비트 판단단계(S110) 이후에 선택된 웨이의 락킹명령어 수행단계(S120)에 의해 프로세서는 하나의 락킹명령어를 수행하고, 그 이후의 단계들은 캐시제어기(20)에 의해 동작이 이루어지게 되므로, 캐시 웨이의 락킹 설정을 위해 프로세서는 한 번만 락킹명령어를 수행하게 되므로 종래에 비해 프로세서의 접근 시간을 감소시키고, 이로 인해 캐시 웨이의 락킹 동작시 프로세서 및 캐시에서 소비되는 전력을 감소시킬 수 있고, 캐시 웨이의 락킹 수행시 수행 속도를 빠르게 할 수 있다.
선택된 웨이의 캐시라인별 상태정보 판독단계(S130)는 캐시제어기(20)로 전송된 락킹명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독한다. 즉, 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)는 선택된 캐시 웨이의 락킹을 설정하기 위해 인덱스에 따라 첫번째 캐시라인부터 순차적으로 선택된 웨이의 마지막 캐시 라인까지 각 캐시 라인의 유효비트(V)와 더티비트(D)를 판독한다.
유효비트와 더티비트 판단단계(S140)는 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단한다.
후기입 방식(write back)의 캐시메모리를 사용하는 경우 캐시데이터는 캐시메모리의 캐시데이터 저장부(3)에 저장되어 가장 최근의 데이터를 저장하고 있으나 주메모리에는 이를 저장하지 않으므로 주메모리의 데이터를 갱신하여 캐시메모리와 주메모리 사이에 일관성이 유지되도록 해주어야 한다. 따라서 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 선택된 현재 캐시 라인과 연관된 주메모리에 저장된 데이터는 유효한 데이터가 아니므로, 카피백단계(S150)에 의해 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 메모리요청주소(MA)에 의해 선택되는 현재 캐시 라인과 연관된 주메모리에 저장된 데이터는 일치하지 않으므로 를 메모리요청주소(MA)에 따른 주메모리에 저장하고, 더티비트(D)를 무효논리값을 갖도록 비활성화시켜 준다.
캐시라인 락킹단계(S160)는 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 카피백단계(S150)가 완료되면, 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시킨다.
마지막 캐시라인 판단단계(S170)는 캐시라인 락킹단계(S160)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)를 수행한다.
이와 같이 캐시제어기(20)에 의해 수행되는 선택된 웨이의 캐시라인별 상태정보 판독단계(S130), 유효비트와 더티비트 판단단계(S140), 카피백단계(S150), 캐시라인 락킹단계(S160) 및 마지막 캐시라인 판단단계(S170)에 의해 락킹하고자 하는 선택된 캐시 웨이의 첫번째 캐시라인부터 마지막 캐시라인 까지 순처적으로 각 캐시라인에 대해서 카피백을 수행하고, 락킹데이터를 저장하고, 유효비트(V)와 라인락비트(L)를 활성화시켜 모든 캐시 라인에 대해서 락킹 설정을 완료한다.
웨이락비트 갱신단계(S180)는 마지막 캐시라인 판단단계(S170)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시켜, 사용자에 의해 선택된 캐시 웨이에 대한 락킹 설정을 완료한다.
도 7 내지 도 9에 도시된 본 발명의 다른 실시예인 캐시메모리의 캐시 웨이 락킹방법의 동작은 다음과 같다.
사용자에 의해 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트(WL)를 판독하는 웨이락비트 판독단계(S210)와, 웨이락비트 판독단계(S210)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판단단계(S220)는 각각 도 6의 웨이락비트 판독단계(S100)와 웨이락비트 판단단계(S110)와 동일하다.
도 6의 경우 웨이락비트 판단단계(S110) 이후에는 프로세서는 하나의 락킹명령어를 수행하여 선택된 캐시 웨이에 대해서 캐시 락킹을 설정하는데 반해, 도 7의 경우에는 선택된 캐시 웨이의 락킹 설정을 위해, 선택된 웨이의 캐시라인 초기화단계(S230)에 의해 프로세서는 한 번 초기화명령어를 수행한 후 캐시제어기에 의해 선택된 캐시 웨이의 모든 캐시 라인에 대해서 초기화를 수행하고, 선택된 웨이의 락명령어 수행단계(240)에 의해 프로세서는 한 번 락명령어를 수행한 후 캐시제어기(20)에 의해 웨이 락킹을 종료하게 되어, 본 발명의 다른 실시예의 캐시메모리의 캐시 웨이 락킹방법은 웨이락비트 판단단계(S220) 이후에는 프로세서는 두 번의 명령어, 즉 초기화명령어와 락명령어를 수행한다.
즉, 프로세서는 선택된 캐시 웨이를 초기화시키기 위하여, 웨이락비트 판단단계(S220)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 패치하고, 패치된 초기화명령어를 디코더에 의해 디코딩하고, 디코딩된 초기화명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 초기화명령어 수행단계(S231)와, 캐시제어기(20)로 전송된 초기화명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제1 캐시라인별 상태정보 판독단계(S232)와, 제1 캐시라인별 상태정보 판독단계(S232)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제1 유효비트와 더티비트 판단단계(S233)와, 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제1 카피백단계(S234)와, 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 제1 카피백단계(S234) 완료 후 선택된 현재 캐시 라인의 유효비트(V)를 비활성화시키는 캐시라인 초기화단계(S235)와, 캐시라인 초기화단계(S235)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 제1 캐시라인별 상태정보 판독단계(S232)를 수행하고, 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 캐시 라인의 초기화를 종료하는 제1 마지막 캐시라인 판단단계(S236)로 구성된 선택된 웨이의 캐시라인 초기화단계(S230)를 수행한다.
이와 같이 선택된 캐시 웨이의 초기화를 위해 선택된 웨이의 캐시라인 초기화단계(S230)는 프로세서에 의해 한 번 초기화명령어를 수행한 후 캐시제어기에 의해 선택된 캐시 웨이의 모든 캐시 라인에 대해서 초기화를 수행한다.
또한, 선택된 웨이의 캐시라인 초기화단계(S230) 이후에 프로세서에 의해 선택된 캐시 웨이의 각 캐시라인의 캐시데이터 저장부(3)에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트와 선택된 캐시 웨이의 웨이락비트를 갱신하기 위한 락명령어를 패치하고, 패치된 락명령어를 디코더에 의해 디코딩하고, 디코딩된 락명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 락명령어 수행단계(S241)와, 캐시제어기(20)로 전송된 락명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제2 캐시라인별 상태정보 판독단계(S242)와, 제2 캐시라인별 상태정보 판독단계(S242)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제2 유효비트와 더티비트 판단단계(S243)와, 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제2 카피백단계(S244)와, 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 상기 제2 카피백단계(S244) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시키는 캐시라인 락킹단계(S245)와, 캐시라인 락킹단계(S245)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 제2 캐시라인별 상태정보 판독단계(S242)를 수행하는 제2 마지막 캐시라인 판단단계(S246)와, 제2 마지막 캐시라인 판단단계(S246)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 웨이락비트 갱신단계(S247)로 구성된 선택된 웨이의 락명령어 수행단계(S240)를 수행한다.
이와 같이 선택된 웨이의 락명령어 수행단계(S240)는 프로세서에 의해 한 번 락명령어를 수행한 후, 캐시제어기(20)에 의해 선택된 캐시 웨이에 대해서 각 캐시 라인의 캐시데이터 저장부(3)에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트(L)를 활성화시키고, 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시켜 캐시 웨이의 락킹설정을 완료한다.
따라서, 본 발명의 다른 실시예의 캐시메모리의 캐시 웨이 락킹방법의 경우 선택된 웨이의 캐시라인 초기화단계(S230)는 종래의 선택된 웨이의 캐시라인 초기화단계와 동일하다. 그러나, 종래의 경우 선택된 웨이의 락킹데이터 저장단계(S40)와 선택된 웨이의 라인락비트와 웨이락비트 갱신단계(S50)를 수행하기 위해 프로세서는 두 번 수행되어야 하나, 본 발명은 선택된 웨이의 락명령어 수행단계(S240)에 의해 한 번만 프로세서에 접근하여 프로세서에 의해 이를 수행되도록 하여 본 발명은 종래에 비해 프로세서 접근 시간을 감소시킬 수 있다.

Claims (5)

  1. 캐시태그데이터(CTAG)가 저장된 캐시태그 저장부(1), 유효비트(V)와 더티비트(D)와 라인락비트(L)가 저장된 캐시상태 저장부(5) 및 캐시데이터가 저장된 캐시데이터 저장부(3)로 구성된 다수의 캐시 웨이들과 각 캐시 웨이들의 락킹 유무를 나타내는 웨이락비트(WL)들이 저장된 웨이락비트 저장부를 구비한 캐시메모리에 대해서 상기 다수의 캐시 웨이들 중 사용자에 의해 특정 캐시 웨이를 락킹하기 위한 캐시메모리의 캐시 웨이 락킹방법에 있어서,
    사용자에 의해 상기 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트(WL)를 판독하는 웨이락비트 판독단계(S100);
    상기 웨이락비트 판독단계(S100)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판단단계(S110); 및
    상기 웨이락비트 판단단계(S110)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 상기 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 수행하고, 수행된 락킹명령어에 따라 캐시제어기(20)에 의해 상기 선택된 캐시 웨이를 락킹시키는 캐시웨이 락킹단계(S190)를 구비하며,
    상기 캐시웨이 락킹단계(S190)는, 상기 웨이락비트 판단단계(S110)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 상기 선택된 캐시 웨이를 락킹시키기 위한 락킹명령어를 패치하고, 패치된 락킹명령어를 디코더에 디코딩하고, 디코딩된 락킹명령어를 캐시제어기로 전송하는 선택된 웨이의 락킹명령어 수행단계(S120)와, 상기 캐시제어기로 전송된 락킹명령어에 따라 상기 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)와, 상기 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 유효비트와 더티비트 판단단계(S140)와, 상기 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 메모리요청주소(MA)에 따른 주메모리에 저장하고, 더티비트(D)를 비활성화시키는 카피백단계(S150)와, 상기 유효비트와 더티비트 판단단계(S140)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 상기 카피백단계(S150) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시키는 캐시라인 락킹단계(S160)와, 상기 캐시라인 락킹단계(S160)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 상기 선택된 웨이의 캐시라인별 상태정보 판독단계(S130)를 수행하는 마지막 캐시라인 판단단계(S170)와, 상기 마지막 캐시라인 판단단계(S170)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 웨이락비트 갱신단계(S180)를 구비한 것을 특징으로 캐시메모리의 캐시 웨이 락킹방법.
  2. 삭제
  3. 캐시태그데이터(CTAG)가 저장된 캐시태그 저장부(1), 유효비트(V)와 더티비트(D)와 라인락비트(L)가 저장된 캐시상태 저장부(5) 및 캐시데이터가 저장된 캐시데이터 저장부(3)로 구성된 다수의 캐시 웨이들과 각 캐시 웨이들의 락킹 유무를 나타내는 웨이락비트(WL)들이 저장된 웨이락비트 저장부를 구비한 캐시메모리에 대해서 상기 다수의 캐시 웨이들 중 사용자에 의해 특정 캐시 웨이를 락킹하기 위한 캐시메모리의 캐시 웨이 락킹방법에 있어서,
    사용자에 의해 상기 다수의 캐시 웨이들 중 특정의 캐시 웨이를 선택하여 선택된 캐시 웨이의 웨이락비트(WL)를 판독하는 웨이락비트 판독단계(S210);
    상기 웨이락비트 판독단계(S210)에서 판독된 웨이락비트(WL)의 활성화 유무를 판단하는 웨이락비트 판단단계(S220);
    상기 웨이락비트 판단단계(S220)에서 웨이락비트(WL)가 비활성화되면, 프로세서에 의해 상기 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 수행하고, 프로세서에 의해 수행된 초기화명령어에 따라 캐시제어기(20)에 의해 상기 선택된 캐시 웨이의 각 캐시 라인에 대해서 초기화를 수행하는 선택된 웨이의 캐시라인 초기화단계(S230); 및
    상기 선택된 웨이의 캐시라인 초기화단계(S230) 후 프로세서에 의해 상기 선택된 캐시 웨이의 각 캐시 라인에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트와 선택된 캐시 웨이의 웨이락비트를 갱신하기 위한 락명령어를 수행하고, 프로세서에 의해 수행된 락명령어에 따라 캐시제어기(20)에 의해 상기 선택된 캐시 웨이의 각 캐시 라인에 대해서 주메모리에 저장된 락킹데이타를 캐시데이터 저장부(3)에 저장하고, 각 캐시 라인의 라인락비트(L)를 활성화시키고, 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 선택된 웨이의 락명령어 수행단계(240)를 구비한 것을 특징으로 하는 캐시메모리의 캐시 웨이 락킹방법.
  4. 제 3 항에 있어서, 상기 선택된 웨이의 캐시라인 초기화단계(S230)는,
    상기 웨이락비트 판단단계(S220)에서 웨이락비트(WL)가 비활성화되면 프로세서에 의해 상기 선택된 캐시 웨이의 모든 캐시 라인을 초기화시키기 위한 초기화명령어를 패치하고, 패치된 초기화명령어를 디코더에 의해 디코딩하고, 디코딩된 초기화명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 초기화명령어 수행단계(S231);
    상기 캐시제어기(20)로 전송된 초기화명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제1 캐시라인별 상태정보 판독단계(S232);
    상기 제1 캐시라인별 상태정보 판독단계(S232)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제1 유효비트와 더티비트 판단단계(S233);
    상기 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제1 카피백단계(S234);
    상기 제1 유효비트와 더티비트 판단단계(S233)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 상기 제1 카피백단계(S234) 완료 후 선택된 현재 캐시 라인의 유효비트(V)를 비활성화시키는 캐시라인 초기화단계(S235); 및
    상기 캐시라인 초기화단계(S235)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 상기 제1 캐시라인별 상태정보 판독단계(S232)를 수행하고, 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 캐시 라인의 초기화를 종료하는 제1 마지막 캐시라인 판단단계(S236)를 구비한 것을 특징으로 하는 캐시메모리의 캐시 웨이 락킹방법.
  5. 제 3 항에 있어서, 상기 선택된 웨이의 락명령어 수행단계(240)는,
    프로세서에 의해 상기 선택된 캐시 웨이의 각 캐시라인의 캐시데이터 저장부(3)에 락킹데이터를 저장하고, 각 캐시라인의 라인락비트와 선택된 캐시 웨이의 웨이락비트를 갱신하기 위한 락명령어를 패치하고, 패치된 락명령어를 디코더에 의해 디코딩하고, 디코딩된 락명령어를 캐시제어기(20)로 전송하는 선택된 웨이의 락명령어 수행단계(S241);
    상기 캐시제어기(20)로 전송된 락명령어에 따라 선택된 캐시 웨이에 대해서 메모리요청주소(MA)의 인덱스(Index)에 의해 선택된 현재 캐시 라인의 캐시상태 저장부(5)에 저장된 유효비트(V)와 더티비트(D)를 판독하는 제2 캐시라인별 상태정보 판독단계(S242);
    상기 제2 캐시라인별 상태정보 판독단계(S242)에서 판독된 유효비트(V)와 더티비트(D)의 활성화 유무를 판단하는 제2 유효비트와 더티비트 판단단계(S243);
    상기 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있으면 메모리요청주소(MA)에 따른 주메모리에 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장된 캐시데이터를 저장하고, 더티비트(D)를 비활성화시키는 제2 카피백단계(S244);
    상기 제2 유효비트와 더티비트 판단단계(S243)에서 유효비트(V)와 더티비트(D)가 모두 활성화되어 있지 않거나 상기 제2 카피백단계(S244) 완료 후 주메모리로부터 락킹시킬 락킹데이터를 선택된 현재 캐시 라인의 캐시데이터 저장부(3)에 저장하고, 현재 캐시 라인의 캐시상태저장부(5)에 저장된 유효비트(V)와 라인락비트(L)를 활성화시키는 캐시라인 락킹단계(S245);
    상기 캐시라인 락킹단계(S245)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인인지를 판단하여 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이 아니면 상기 제2 캐시라인별 상태정보 판독단계(S242)를 수행하는 제2 마지막 캐시라인 판단단계(S246); 및
    상기 제2 마지막 캐시라인 판단단계(S246)에서 현재 캐시 라인이 선택된 캐시 웨이의 마지막 캐시라인이면 선택된 캐시 웨이의 웨이락비트(WL)를 활성화시키는 웨이락비트 갱신단계(S247)를 구비한 것을 특징으로 캐시메모리의 캐시 웨이 락킹방법.
KR1020110080471A 2011-08-12 2011-08-12 캐시메모리의 캐시 웨이 락킹방법 KR101306623B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110080471A KR101306623B1 (ko) 2011-08-12 2011-08-12 캐시메모리의 캐시 웨이 락킹방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110080471A KR101306623B1 (ko) 2011-08-12 2011-08-12 캐시메모리의 캐시 웨이 락킹방법

Publications (2)

Publication Number Publication Date
KR20130017813A KR20130017813A (ko) 2013-02-20
KR101306623B1 true KR101306623B1 (ko) 2013-09-11

Family

ID=47896913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110080471A KR101306623B1 (ko) 2011-08-12 2011-08-12 캐시메모리의 캐시 웨이 락킹방법

Country Status (1)

Country Link
KR (1) KR101306623B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200004119A (ko) 2018-07-03 2020-01-13 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198442A1 (en) * 2004-03-02 2005-09-08 Mandler Alberto R. Conditionally accessible cache memory
KR20100053540A (ko) * 2007-08-02 2010-05-20 프리스케일 세미컨덕터, 인크. 캐시 로킹 디바이스 및 그 방법들

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198442A1 (en) * 2004-03-02 2005-09-08 Mandler Alberto R. Conditionally accessible cache memory
KR20100053540A (ko) * 2007-08-02 2010-05-20 프리스케일 세미컨덕터, 인크. 캐시 로킹 디바이스 및 그 방법들

Also Published As

Publication number Publication date
KR20130017813A (ko) 2013-02-20

Similar Documents

Publication Publication Date Title
US10860323B2 (en) Method and apparatus for processing instructions using processing-in-memory
KR100809320B1 (ko) 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US9547594B2 (en) Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
TWI533201B (zh) 縮減交易回復的快取控制
US11336305B2 (en) Memory system
US11210020B2 (en) Methods and systems for accessing a memory
US8825946B2 (en) Memory system and data writing method
US20070168617A1 (en) Patrol snooping for higher level cache eviction candidate identification
WO2020164064A1 (en) Partial caching of media address mapping data
US20070136532A1 (en) Methods and apparatus for handling a cache miss
US6898671B2 (en) Data processor for reducing set-associative cache energy via selective way prediction
JP2010097557A (ja) セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法
US20080301372A1 (en) Memory access control apparatus and memory access control method
JP5286796B2 (ja) メモリ制御装置
US20170322735A1 (en) Memory device including risky mapping table and controlling method thereof
US20120254499A1 (en) Program, control method, and control device
US20180225185A1 (en) Data storage device and operating method thereof
JP5129023B2 (ja) キャッシュメモリ装置
US20150161052A1 (en) Memory device supporting both cache mode and memory mode, and operating method of the same
KR101306623B1 (ko) 캐시메모리의 캐시 웨이 락킹방법
JP6538741B2 (ja) 管理装置、情報処理装置および管理方法
KR20050076156A (ko) 플래시 메모리의 데이터 복구 장치 및 방법
KR102441992B1 (ko) 분리 메모리 관리 방법 및 장치

Legal Events

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

Payment date: 20160905

Year of fee payment: 4