KR20000020378A - 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 - Google Patents

분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 Download PDF

Info

Publication number
KR20000020378A
KR20000020378A KR1019980038982A KR19980038982A KR20000020378A KR 20000020378 A KR20000020378 A KR 20000020378A KR 1019980038982 A KR1019980038982 A KR 1019980038982A KR 19980038982 A KR19980038982 A KR 19980038982A KR 20000020378 A KR20000020378 A KR 20000020378A
Authority
KR
South Korea
Prior art keywords
cache
data
load
update
memory
Prior art date
Application number
KR1019980038982A
Other languages
English (en)
Other versions
KR100486240B1 (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 KR10-1998-0038982A priority Critical patent/KR100486240B1/ko
Publication of KR20000020378A publication Critical patent/KR20000020378A/ko
Application granted granted Critical
Publication of KR100486240B1 publication Critical patent/KR100486240B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main 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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/765Cache

Landscapes

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

Abstract

분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법이 개시된다. 본 발명에 따른 분리된 캐쉬 메모리를 구비한 마이크로프로세서는, 소정의 로드 명령 및 스토어 명령을 출력하고, 로드 명령에 상응하는 데이타를 로드하여 연산 처리함으로써 데이타를 갱신하는 중앙 처리 장치 코아, 복수 개의 메모리 블럭을 구비하고, 로드 명령에 응답하여 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하는 로드 캐쉬, 복수 개의 메모리 블럭을 구비하고, 로드 명령에 응답하여 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하고, 스토어 명령에 응답하여 갱신된 데이타를 저장하는 갱신 캐쉬, 중앙 처리 장치 코아에서 인가되는 어드레스와, 어드레스의 인덱스에 상응하는 로드 캐쉬의 각 태그를 비교하고, 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제1비교 수단, 중앙 처리 장치 코아에서 인가되는 어드레스와, 갱신 캐쉬의 각 태그를 비교하고, 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제2비교 수단, 제1비교 수단 또는 제2비교 수단의 비교 결과에 응답하여 로드 캐쉬 또는 갱신 캐쉬로부터 데이타를 로드할 것인가를 선택하기 위한 선택 신호를 생성하는 로드 데이타 선택 수단 및 선택 신호에 응답하여 로드 캐쉬 또는 갱신 캐쉬에 저장된 데이타를 선택적으로 출력하는 멀티플렉서를 구비하는 것을 특징으로한다.

Description

분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
본 발명은 마이크로프로세서에 관한 것으로서, 특히, 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법에 관한 것이다.
현재 대부분의 마이크로프로세서(MICROPROCESSOR)는 메모리 계층적 구조 (Memory Hierarchy)를 사용한다. 이를 통해 가장 빠른 속도의 메모리 액세스와 가장 큰 용량의 메모리를 사용할 수 있게 된다. 메모리 계층적 구조는 캐쉬 메모리 (Cache Memory)를 이용하여 구성하는데, 캐쉬 메모리의 구조와 관리 방법, 캐쉬 메모리의 사이즈 등에 따라서 메모리 시스템의 성능이 좌우된다. 또한, 캐쉬 메모리 시스템에 있어서 성능을 좌우하는 가장 큰 요소는 캐쉬 메모리의 데이타 적중율(Cache Hit Ratio)이다. 즉, 데이타 적중율이 떨어지면 메모리 액세스 속도가 느린 메인 메모리에서 원하는 데이타를 읽어내야 하므로 마이크로프로세서 의 성능이 떨어진다. 따라서, 마이크로프로세서의 성능에 가장 큰 영향을 끼치는 메모리 액세스 속도를 개선하기 위해서는 데이타 적중율을 높여야한다. 이러한 데이타 적중율은 캐쉬 메모리의 크기와 구조, 대치 알고리듬(Replacement Algorithm) 및 갱신 방법(Update Policy) 등에 의해 결정된다.
일반적인 캐쉬 메모리 구조에서는 새로운 데이타를 캐쉬 메모리에 할당할 때, 해당 어드레스에 이미 할당된 데이타가 존재하면 이들 중 하나를 선택하여 새로운 데이타와 대치한다. 만약, 선택된 데이타의 라이프 사이클(life cycle)이 대치된 데이타의 라이프 사이클보다 큰 경우에는 상기의 선택된 데이타에 대한 메모리 재접근시 캐쉬 미스(miss)가 발생한다는 문제점이 있다. 종래의 캐쉬 메모리 시스템에서는 캐쉬 미스에 대한 해결책으로 캐쉬 메모리의 사이즈를 크게 하거나, 라이프 사이클이 긴 데이타와 짧은 데이타를 판별하여 효과적인 대치가 이루어질 수 있도록하는 대치 방법(Replacement Policy)을 이용하고자 하였다. 그러나, 이러한 경우에는 캐쉬 메모리의 사이즈가 커질 뿐 아니라, 실제로 완전한 대치 방법을 적용하는 것이 어렵다는 문제점이 있다.
본 발명이 이루고자하는 기술적 과제는, 캐쉬 메모리를 분리하여 데이타 로드(load)와 스토어(store)를 독립적으로 수행함으로써 데이타 적중율을 향상시킨 분리된 캐쉬 메모리를 구비한 마이크로프로세서를 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 상기 마이크로프로세서에서 수행되는 메모리 액세스 방법을 제공하는데 있다.
도 1은 본 발명에 따른 분리된 캐쉬 메모리를 구비한 마이크로프로세서를 설명하기 위한 개략적인 블럭도이다.
도 2는 도 1에 도시된 마이크로프로세서에서 수행되는 메모리 액세스 방법을 설명하기 위한 플로우차트이다.
상기 과제를 이루기위해, 본 발명에 따른 분리된 캐쉬 메모리를 구비한 마이크로프로세서는, 소정의 로드 명령 및 스토어 명령을 출력하고, 로드 명령에 상응하는 데이타를 로드하여 연산 처리함으로써 상기 데이타를 갱신하는 중앙 처리 장치 코아, 각각의 태그를 갖는 복수 개의 메모리 블럭을 구비하고, 로드 명령에 응답하여 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하는 로드 캐쉬, 각각의 태그를 갖는 복수 개의 메모리 블럭을 구비하고, 로드 명령에 응답하여 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하고, 스토어 명령에 응답하여 갱신된 데이타를 저장하는 갱신 캐쉬, 중앙 처리 장치 코아에서 인가되는 어드레스와, 어드레스의 인덱스에 상응하는 로드 캐쉬의 각 태그를 비교하고, 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제1비교 수단, 중앙 처리 장치 코아에서 인가되는 어드레스와, 갱신 캐쉬의 각 태그를 비교하고, 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제2비교 수단, 제1비교 수단 또는 제2비교 수단의 비교 결과에 응답하여 로드 캐쉬 또는 갱신 캐쉬로부터 데이타를 로드할 것인가를 선택하기 위한 선택 신호를 생성하는 로드 데이타 선택 수단 및 선택 신호에 응답하여 로드 캐쉬 또는 갱신 캐쉬에 저장된 데이타를 선택적으로 출력하는 멀티플렉서로 구성되는 것이 바람직하다.
상기 다른 과제를 이루기위해, 본 발명에 따른 분리된 캐쉬 메모리를 구비한 마이크로프로세서에서 수행되는 메모리 액세스 방법은, 로드 캐쉬와 갱신 캐쉬로 분리된 캐쉬 메모리를 갖고, 내부의 중앙 처리 장치 코아에서 소정 로드 명령과 스토어 명령을 인가하는 마이크로프로세서의 메모리 액세스 방법에 있어서, (a)로드하고자하는 데이타가 로드 캐쉬에 존재하는가를 판단하는 단계, (b) 로드하고자하는 데이타가 로드 캐쉬에 존재하면, 데이타를 로드하여 레지스터 파일에 저장하는 단계, (c) (b)단계 후에 스토어 명령이 인가되었는가를 판단하고, 스토어 명령이 인가되지 않았으면, 로드 캐쉬에 저장된 데이타를 유지하는 단계, (d) (c)단계에서 스토어 명령이 인가되었으면 레지스터 파일에 저장된 데이타를 갱신 캐쉬에 할당하는 단계, (e)(a)단계에서 로드하고자하는 데이타가 로드 캐쉬에 존재하지 않으면, 갱신 캐쉬에 존재하는가를 판단하는 단계, (f) (e)단계에서 로드하고자하는 데이타가 갱신 캐쉬에 존재하면, 갱신 캐쉬에서 데이타를 로드하여 레지스터 파일에 저장하는 단계, (g)(f)단계 후에 스토어 명령이 인가되었는가를 판단하고, 인가되지 않았으면 갱신 캐쉬에 저장된 데이타를 유지하는 단계, (h) (g)단계에서 스토어 명령이 인가되었으면, 갱신된 데이타를 갱신 캐쉬에 할당하고, 로드 캐쉬에 저장된 데이타를 무효화시키는 단계 및 (i) (e)단계에서 로드하고자 하는 데이타가 갱신 캐쉬에 존재하지 않으면, 외부 메인 메모리 또는 2차 캐쉬에서 데이타를 로드하여 로드 캐쉬에 할당하고, 할당된 데이타를 레지스터 파일에 저장하는 단계로 구성되는 것이 바람직하다.
이하, 본 발명에 따른 분리된 캐쉬 메모리를 갖는 마이크로프로세서에 관하여 첨부된 도면을 참조하여 다음과 같이 설명한다.
도 1은 본 발명에 따른 분리된 캐쉬 메모리를 구비한 마이크로프로세서를 설명하기 위한 바람직한 실시예의 블럭도이다. 마이크로프로세서(100)는 중앙 처리 장치 코아(Central Processing Unit Core:CPU core)(110), 로드 캐쉬(Load Cache)(130), 갱신 캐쉬(Update Cache)(140), 제1비교기(150), 제2비교기(160), 선택부(170) 및 멀티플렉서(180)를 포함한다. 여기에서, 로드 캐쉬(130)는 복수 개의 메모리 블럭들(131~13n)로 구성되고, 갱신 캐쉬(140)는 복수 개의 메모리 블럭들(141~14n)로 구성된다. 여기에서, 참조 번호 102는 어드레스 버스를 나타내고, 104는 데이타 버스를 나타내고, 182는 데이타 로드 경로를 나타내고, 190는 데이타 스토어 경로를 나타낸다. 설명의 편의를 위하여 외부의 메인 메모리 또는 2차 캐쉬(120)를 함께 도시한다.
도 1에 도시된 CPU코아(110)는 소정의 로드 명령 및 스토어 명령을 생성하고, 로드 명령에 응답하여 캐쉬 메모리(130또는 140) 또는 외부 메인 메모리에서 로드된 데이타를 연산 처리함으로써 상기의 데이타를 갱신하고, 갱신된 데이타를 스토어 명령에 응답하여 갱신 캐쉬(140) 또는 외부 메인 메모리(120)에 저장한다.
로드 캐쉬(130)는 각각의 태그(TAG)를 갖는 복수 개의 메모리 블럭들 131~13n)을 구비하고, CPU코아(110)에서 출력된 로드 명령에 따라서 해당 어드레스의 데이타를 CPU코아(110)로 출력하며, 이후의 스토어 명령에 따라서 상기의 데이타를 무효화시킨다.
갱신 캐쉬(140)는 각각의 태그(TAG)를 갖는 복수 개의 메모리 블럭들 (141~14n)을 구비하고, CPU코아(110)에서 출력된 로드 명령에 따라서 해당 어드레스의 데이타를 CPU코아(110)로 출력하거나, 갱신된 데이타를 스토어 명령에 응답하여 상기 어드레스에 기입함으로써 데이타의 대치(Replacemeant)를 수행한다. 도 1에 도시된 로드 캐쉬(130)와 갱신 캐쉬(140)는 그 사이즈가 임의로 가변될 수 있다.
제1비교기(150)는 CPU코아(110)에서 어드레스 버스(102)를 통하여 인가되는 메모리 어드레스와 로드 캐쉬(130)의 각 블럭에 해당하는 태그를 비교하고, 비교된 결과에 응답하여 데이타가 적중하였는가를 결정한다. 다시 말해서, 태그 비교 결과에 의해 캐쉬 히트(cache hit)가 발생하였는가를 판단한다.
제2비교기(160)는 CPU코아(110)에서 어드레스 버스(102)를 통하여 인가되는 메모리 어드레스와 갱신 캐쉬(140)의 각 블럭에 해당하는 태그를 비교하고, 비교된 결과에 응답하여 데이타가 적중하였는가를 결정한다.
로드 데이타 선택부(170)는 제1비교기(150)와 제2비교기(160)에서 출력된 비교 결과에 응답하여 로드 캐쉬(130)에 저장된 데이타를 로드할 것인지 갱신 캐쉬(140)에 저장된 데이타를 로드할 것인지를 선택하기 위한 선택 신호를 출력한다.
멀티플렉서(180)는 로드 캐쉬(130)에 저장된 데이타를 제1입력으로하고, 갱신 캐쉬(140)에 저장된 데이타를 제2입력으로하며, 로드 데이타 선택부(170)에서 생성된 선택 신호에 응답하여 제1입력 및 제2입력으로 인가되는 데이타를 선택적으로 출력한다.
즉, 도 1에 도시된 마이크로프로세서는 분리된 캐쉬를 갖고, 데이타 로드와 스토어를 독립적으로 수행하는 단방향 캐쉬 구조를 갖는다는 특징이 있다.
도 2는 도 1에 도시된 분리된 캐쉬 메모리를 갖는 마이크로프로세서에서 수행되는 메모리 액세스 방법을 설명하기 위한 플로우차트로서, 로드하고자하는 데이타가 로드 캐쉬에 존재하는가를 판단하고, 로드 캐쉬에 존재하면 로드 명령 및 스토어 명령에 상응하여 메모리를 액세스하는 단계(제200~208단계), 로드하고자 하는 데이타가 로드 캐쉬에 존재하지 않으면 갱신 캐쉬에 존재하는가를 판단하여 갱신 캐쉬에 존재하면 로드 명령 및 스토어 명령에 상응하여 메모리를 액세스하는 단계(제220~228단계) 및 로드하고자 하는 데이타가 로드 캐쉬와 스토어 캐쉬에 모두 존재하지 않으면 외부 메인 메모리 또는 2차 캐쉬로부터 데이타를 로드하여 로드 캐쉬에 할당하고, 레지스터 파일에 저장하는 단계(제230단계)를 포함한다.
도 1 및 도 2를 참조하여 본 발명에 따른 분리된 캐쉬 메모리를 갖는 마이크로프로세서의 동작 및 메모리 액세스 방법에 관하여 상세히 설명한다.
본 발명에 따른 마이크로프로세서(100)는 CPU 코아(110)에서 출력되는 로드 명령에 의해 해당 어드레스의 데이타를 로드한다. 즉, CPU코아(110)에서 로드 명령이 출력되면, 로드 캐쉬(130)와 갱신 캐쉬(140)는 동시에 액세스된다. 로드 캐쉬(130)는 CPU코아(110)로부터 어드레스 버스(102)를 통하여 입력되는 메모리 어드레스의 인덱스(INDEX)에 상응하는 각 메모리 블럭(131~13n)의 태그(T31~T3n)를 제1비교기(150)의 제2입력으로 인가한다. 한편, 갱신 캐쉬(140)는 어드레스 버스(102)를 통하여 입력되는 메모리 어드레스의 인덱스(INDEX)에 상응하는 각 메모리 블럭(141~14n)의 태그(T41~T4n)를 제2비교기(160)의 제2입력으로 인가한다. 따라서, 제1비교기(150)는 제1입력으로 인가되는 메모리 어드레스와, 각 로드 캐쉬(130)의 각 메모리 블럭(131~13n)의 태그(T31~T3n)를 비교하여 일치하는가를 판단한다. 또한, 제2비교기(160)는 제1입력으로 인가되는 메모리 어드레스와, 갱신 캐쉬(140)의 각 메모리 블럭(141~14n)의 태그(T41~T4n)를 비교하여 일치하는가를 판단한다. 이러한 과정을 통하여 로드 캐쉬(130)와 갱신 캐쉬(140)가 동시에 액세스되면, 태그 비교 결과를 판단함으로써 데이타 적중 여부를 판별할 수 있다. 결국, 어느 캐쉬에서 데이타 히트(hit)가 발생하였는가에 따라서 로드 캐쉬(130)에서 데이타를 로드할 것인지 갱신 캐쉬(140)에서 데이타를 로드할 것인지를 결정하게 된다.
도 2를 참조하면, 태그 비교 결과에 의해 마이크로프로세서(100)에서 로드 하고자하는 데이타가 로드 캐쉬(130)에 존재하는가를 판단한다(제200단계). 제200단계에서 로드하고자하는 데이타가 로드 캐쉬(130)에 존재한다고 판단되면, 도 1에 도시된 멀티플렉서(180)는 로드 데이타 선택부(170)에서 생성된 선택 신호에 응답하여 로드 캐쉬(130)의 데이타를 선택한다. 즉, CPU코아(110)는 멀티플렉서(180)의 출력과 연결된 로드 경로(182)를 통하여 로드 캐쉬(130)의 데이타를 로드하고, 로드된 상기의 데이타는 데이타 버스(104)를 통하여 CPU코아(110)의 내부 레지스터 파일(미도시)에 저장된다(제202단계). 이 때, 갱신 캐쉬(140)에는 데이타가 할당되지 않으며, 이후의 스토어 명령에 의해 동일한 메모리 어드레스로 저장될 때 갱신 캐쉬(140)에 할당된다. 로드된 데이타는 CPU코아(110)의 내부 레지스터 파일(미도시)에서 소정의 방식으로 연산되고, 수행되는 연산 결과에 의해 그 데이타가 갱신된다. 제202단계 후에, CPU코아 (110)로부터 스토어 명령이 인가되었는가를 판단한다(제204단계). 제204단계에서 스토어 명령이 인가되었으면, 레지스터 파일(미도시)에 저장된 데이타를 스토어 경로(190)를 통하여 갱신 캐쉬(140)에 저장한다(제208단계). 또한, 제204단계에서 스토어 명령이 인가되지 않았으면, 로드 캐쉬(130)는 상기의 메모리 어드레스에 저장된 현재의 데이타 상태를 유지한다(제206단계).
한편, 제200단계에서 로드하고자하는 데이타가 로드 캐쉬(140)에 존재하지 않으면, 갱신 캐쉬(140)에 로드하고자하는 데이타가 존재하는가를 판단한다 (제220단계). 만약, 갱신 캐쉬(140)에서 캐쉬 히트가 발생하여 로드하고자 하는 데이타가 갱신 캐쉬(140)에 존재하는 것으로 판단되면, 마이크로프로세서(100)는 갱신 캐쉬(140)에서 로드 경로(182)를 통하여 데이타를 로드하여 CPU코아(110)의 레지스터 파일(미도시)에 저장한다(제222단계). 제222단계 후에, CPU코아(110)에서 스토어 명령이 인가되었는가를 판단하고(제224단계), 스토어 명령이 인가되지 않았으면 갱신 캐쉬(140)에 저장된 현재의 데이타 상태를 유지한다(제226단계).
또한, 제224단계에서 스토어 명령이 인가되었으면 CPU코아(110)는 스토어 경로(190)를 통하여 갱신된 데이타를 갱신 캐쉬(140)에 할당하고, 로드 캐쉬(130)에 저장된 데이타를 무효화(Invalidate)시킨다. 결국, 로드 캐쉬(130)에 저장되는 데이타는 라이프 사이클이 짧은 읽기 전용 데이타(READ ONLY DATA)이고, 갱신 캐쉬(140)에 할당되는 갱신 데이타는 그 라이프 사이클이 길다는 것을 알 수 있다. 여기에서, 데이타가 갱신될 때마다 로드 캐쉬(130) 내부의 데이타 블럭은 무효화되므로 이전에 로드 캐쉬(130)에 할당된 데이타는 메인 메모리 또는 2차 캐쉬(120)에 저장하지 않는다. 즉, 로드 캐쉬(130)에는 새로운 데이타 블럭만이 저장되고, 갱신된 데이타는 저장되지 않으므로 데이타의 대치(REPLACEMENT)가 이루어지지 않는다. 따라서, 데이타의 대치는 갱신 캐쉬(140)에서만 이루어지며, 갱신된 데이타는 외부 메인 메모리 또는 2차 캐쉬(120)의 해당 어드레스에 다시 저장된다.
한편, 제220단계에서 로드하고자하는 데이타가 갱신 캐쉬(140)에 존재하지 않으면 마이크로프로세서(100)는 외부의 메인 메모리 또는 2차 캐쉬(120)에서 데이타를 로드하여 로드된 데이타를 로드 캐쉬(130)에 할당하고, 상기의 데이타를 CPU코아(110) 내부의 레지스터 파일(미도시)에 저장한다(제230단계).
본 발명에 따른 마이프로프로세서는 상술한 과정을 통하여 캐쉬 메모리를 액세스한다. 즉, 캐쉬 메모리를 로드 캐쉬와 갱신 캐쉬로 분리하여 라이프 사이클이 작고 재참조될 가능성이 적은 데이타를 로드 캐쉬에 저장하고, 라이프 사이클이 긴 데이타를 갱신 캐쉬에 저장하여 갱신 캐쉬에서만 데이타 대치를 수행함으로써 효율적인 데이타 대치를 수행할 수 있다.
본 발명에 따르면, 마이크로프로세서 내부의 캐쉬 메모리를 로드 캐쉬와 갱신 캐쉬로 분리하여 갱신 캐쉬에서만 데이타 대치를 수행함으로써 라이프 사이클이 작은 데이타가 라이프 사이클이 큰 갱신 데이타를 대치하는 것을 없앨 수 있을 뿐 만 아니라, 데이타 미스(miss)를 최소화시킴으로써 데이타 적중율을 높일 수 있다는 효과가 있다.

Claims (7)

  1. 소정의 로드 명령 및 스토어 명령을 출력하고, 상기 로드 명령에 상응하는 데이타를 로드하여 연산 처리함으로써 상기 데이타를 갱신하는 중앙 처리 장치 코아;
    각각의 태그를 갖는 복수 개의 메모리 블럭을 구비하고, 상기 로드 명령에 응답하여 상기 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하는 로드 캐쉬;
    각각의 태그를 갖는 복수 개의 메모리 블럭을 구비하고, 상기 로드 명령에 응답하여 상기 메모리 블럭에 저장된 데이타 중 해당 어드레스의 데이타를 출력하고, 상기 스토어 명령에 응답하여 상기 갱신된 데이타를 저장하는 갱신 캐쉬;
    상기 중앙 처리 장치 코아에서 인가되는 어드레스와, 상기 어드레스의 인덱스에 상응하는 상기 로드 캐쉬의 각 태그를 비교하고, 상기 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제1비교 수단;
    상기 중앙 처리 장치 코아에서 인가되는 어드레스와, 상기 갱신 캐쉬의 각 태그를 비교하고, 상기 비교된 결과에 따라서 데이타 적중 여부를 결정하는 제2비교 수단;
    상기 제1비교 수단 또는 상기 제2비교 수단의 비교 결과에 응답하여 상기 로드 캐쉬 또는 상기 갱신 캐쉬로부터 데이타를 로드할 것인가를 선택하기 위한 선택 신호를 생성하는 로드 데이타 선택 수단; 및
    상기 선택 신호에 응답하여 상기 로드 캐쉬 또는 상기 갱신 캐쉬에 저장된 데이타를 선택적으로 출력하는 멀티플렉서를 포함하는 것을 특징으로하는 분리된 캐쉬 메모리를 구비한 마이크로프로세서.
  2. 제1항에 있어서, 상기 마이크로프로세서는,
    로드하고자하는 데이타가 상기 갱신 캐쉬에 존재하면 상기 갱신된 데이타를 상기 스토어 명령에 의해 상기 갱신 캐쉬에 할당할 때, 상기 로드 캐쉬에 할당된 데이타 블럭을 무효화시키는 것을 특징으로하는 분리된 캐쉬 메모리를 구비한 마이크로프로세서.
  3. 제1항에 있어서, 상기 로드 캐쉬는 라이프 사이클이 짧은 읽기 전용 데이타를 저장하는 것을 특징으로하는 분리된 캐쉬 메모리를 구비한 마이크로프로세서.
  4. 제1항에 있어서, 상기 마이크로프로세서는, 상기 갱신 캐쉬에서만 데이타의 대치가 이루어지는 것을 특징으로하는 분리된 캐쉬 메모리를 구비한 마이크로프로세서.
  5. 로드 캐쉬와 갱신 캐쉬로 분리된 캐쉬 메모리를 갖고, 내부의 중앙 처리 장치 코아에서 소정 로드 명령과 스토어 명령을 인가하는 마이크로프로세서의 메모리 액세스 방법에 있어서,
    (a)로드하고자하는 데이타가 상기 로드 캐쉬에 존재하는가를 판단하는 단계;
    (b)상기 로드하고자하는 데이타가 상기 로드 캐쉬에 존재하면, 상기 데이타를 로드하여 레지스터 파일에 저장하는 단계;
    (c)상기 (b)단계 후에 상기 스토어 명령이 인가되었는가를 판단하고, 상기 스토어 명령이 인가되지 않았으면, 상기 로드 캐쉬에 저장된 데이타를 유지하는 단계;
    (d)상기 (c)단계에서 상기 스토어 명령이 인가되었으면 상기 레지스터 파일에 저장된 데이타를 상기 갱신 캐쉬에 할당하는 단계;
    (e)상기 (a)단계에서 상기 로드하고자하는 데이타가 상기 로드 캐쉬에 존재하지 않으면, 상기 갱신 캐쉬에 존재하는가를 판단하는 단계;
    (f)상기 (e)단계에서 상기 로드하고자하는 데이타가 상기 갱신 캐쉬에 존재하면, 상기 갱신 캐쉬에서 상기 데이타를 로드하여 상기 레지스터 파일에 저장하는 단계;
    (g)상기 (f)단계 후에 상기 스토어 명령이 인가되었는가를 판단하고, 인가되지 않았으면 상기 갱신 캐쉬에 저장된 데이타를 유지하는 단계;
    (h)상기 (g)단계에서 상기 스토어 명령이 인가되었으면, 갱신된 데이타를 상기 갱신 캐쉬에 할당하고, 상기 로드 캐쉬에 저장된 데이타를 무효화시키는 단계; 및
    (i)상기 (e)단계에서 상기 로드하고자 하는 데이타가 상기 갱신 캐쉬에 존재하지 않으면, 외부 메인 메모리 또는 2차 캐쉬에서 데이타를 로드하여 상기 로드 캐쉬에 할당하고, 상기 할당된 데이타를 상기 레지스터 파일에 저장하는 단계를 포함하는 것을 특징으로하는 분리된 캐쉬 메모리를 갖는 메모리 액세스 방법.
  6. 제5항에 있어서, 상기 (a)단계는,
    상기 중앙 처리 장치 코아에서 인가되는 어드레스와, 상기 어드레스의 인덱스에 상응하는 상기 로드 캐쉬의 각 메모리 블럭의 태그를 비교하여 서로 같은가를 판단하는 단계임을 특징으로하는 메모리 액세스 방법.
  7. 제5항에 있어서, 상기 (e)단계는,
    상기 마이크로프로세서에서 인가되는 어드레스와, 상기 어드레스의 인덱스에 상응하는 상기 갱신 캐쉬의 각 메모리 블럭의 태그를 비교하여 서로 같은가를 판단하는 단계임을 특징으로하는 메모리 액세스 방법.
KR10-1998-0038982A 1998-09-21 1998-09-21 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 KR100486240B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0038982A KR100486240B1 (ko) 1998-09-21 1998-09-21 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1998-0038982A KR100486240B1 (ko) 1998-09-21 1998-09-21 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법

Publications (2)

Publication Number Publication Date
KR20000020378A true KR20000020378A (ko) 2000-04-15
KR100486240B1 KR100486240B1 (ko) 2005-06-08

Family

ID=19551283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0038982A KR100486240B1 (ko) 1998-09-21 1998-09-21 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법

Country Status (1)

Country Link
KR (1) KR100486240B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100416858B1 (ko) * 2001-02-15 2004-02-05 정창우 명령어 처리장치
KR100858527B1 (ko) * 2007-04-18 2008-09-12 삼성전자주식회사 시간적 인접성 정보를 이용한 캐쉬 메모리 시스템 및데이터 저장 방법
GB2471372A (en) * 2009-06-22 2010-12-29 Advanced Risc Mach Ltd Dual cache memory with simultaneous access and dual update

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940005780B1 (ko) * 1992-01-14 1994-06-23 대우통신 주식회사 멀티프로세서 시스템에서의 캐쉬메모리 구현방법
KR960016402B1 (ko) * 1993-03-04 1996-12-11 삼성전자 주식회사 캐쉬 데이터 고속전송 장치
KR960042373A (ko) * 1995-05-29 1996-12-21 유기범 주전산기 시스템에 있어서 외부캐쉬
KR19980052331A (ko) * 1996-12-24 1998-09-25 구자홍 프로세서의 캐시 메모리 제어 방법
KR100272165B1 (ko) * 1998-05-20 2000-11-15 윤종용 캐쉬 메모리 시스템 및 그의 운영 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100416858B1 (ko) * 2001-02-15 2004-02-05 정창우 명령어 처리장치
KR100858527B1 (ko) * 2007-04-18 2008-09-12 삼성전자주식회사 시간적 인접성 정보를 이용한 캐쉬 메모리 시스템 및데이터 저장 방법
US8793437B2 (en) 2007-04-18 2014-07-29 Samsung Electronics Co., Ltd. Cache memory system using temporal locality information and a data storage method
GB2471372A (en) * 2009-06-22 2010-12-29 Advanced Risc Mach Ltd Dual cache memory with simultaneous access and dual update
GB2471372B (en) * 2009-06-22 2014-07-23 Advanced Risc Mach Ltd Data storage protocols to determine items stored and items overwritten in linked data stores

Also Published As

Publication number Publication date
KR100486240B1 (ko) 2005-06-08

Similar Documents

Publication Publication Date Title
US5228136A (en) Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity
US8140764B2 (en) System for reconfiguring cache memory having an access bit associated with a sector of a lower-level cache memory and a granularity bit associated with a sector of a higher-level cache memory
US6990557B2 (en) Method and apparatus for multithreaded cache with cache eviction based on thread identifier
JP4006436B2 (ja) 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ
CN108459975B (zh) 用于有效使用地址转换缓存的技术
US7216201B2 (en) Parallel cachelets
US9298615B2 (en) Methods and apparatus for soft-partitioning of a data cache for stack data
US7284094B2 (en) Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class
KR20000069836A (ko) 로킹을 사용한 캐시 대체방법
US20100217937A1 (en) Data processing apparatus and method
JP2007299423A (ja) キャッシュメモリおよびその制御方法
US10423534B2 (en) Cache memory
JP2019096309A (ja) メンテナンス動作の実行
JP2008129712A (ja) 情報処理装置およびデータ検索方法
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
KR980010819A (ko) 비포함적 메모리 억세스 메커니즘
US7219197B2 (en) Cache memory, processor and cache control method
US8266379B2 (en) Multithreaded processor with multiple caches
US6446168B1 (en) Method and apparatus for dynamically switching a cache between direct-mapped and 4-way set associativity
KR100486240B1 (ko) 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
KR101102260B1 (ko) 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법
US7143239B2 (en) Cache structure and methodology
US9665494B2 (en) Parallel lookup in first and second value stores
JPH11143774A (ja) キャッシュ制御機構
US10853267B2 (en) Adaptive method for selecting a cache line replacement algorithm in a direct-mapped cache

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee