KR100546298B1 - Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치 - Google Patents

Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치 Download PDF

Info

Publication number
KR100546298B1
KR100546298B1 KR1019990039538A KR19990039538A KR100546298B1 KR 100546298 B1 KR100546298 B1 KR 100546298B1 KR 1019990039538 A KR1019990039538 A KR 1019990039538A KR 19990039538 A KR19990039538 A KR 19990039538A KR 100546298 B1 KR100546298 B1 KR 100546298B1
Authority
KR
South Korea
Prior art keywords
line size
cache memory
arm7t
mode
bit
Prior art date
Application number
KR1019990039538A
Other languages
English (en)
Other versions
KR20010027669A (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 KR1019990039538A priority Critical patent/KR100546298B1/ko
Publication of KR20010027669A publication Critical patent/KR20010027669A/ko
Application granted granted Critical
Publication of KR100546298B1 publication Critical patent/KR100546298B1/ko

Links

Images

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/04Addressing variable-length words or parts of words
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • G06F2212/6012Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode

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

ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치가 공개된다. 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하는 ARM7T 프로세서를 이용하고, 캐쉬 메모리를 내장한 본 발명에 의한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법은 상기 ARM7T 프로세서의 명령어 모드가 상기 32-비트 모드인가를 판단하는 (a)단계, (a)단계에서 32-비트 모드라고 판단되면, 제1논리레벨을 갖는 제어신호를 발생하는 (b)단계, 제1논리레벨을 갖는 제어신호에 따라 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 하는 (c)단계, (a)단계에서 16-비트 모드라고 판단되면, 제1논리레벨과 상보적인 제2논리레벨을 갖는 제어신호를 발생하는 (d)단계 및 제2논리레벨을 갖는 제어신호에 따라 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 하는 (e)단계로 이루어지는 것을 특징으로 하고, ARM7T 프로세서가 16-비트 모드일 때는 캐쉬 메모리의 라인 사이즈를 원래의 캐쉬 라인 사이즈(32-비트 모드일 때, 캐쉬 메모리의 라인 사이즈)보다 반으로 줄임으로써 외부 주메모리와의 액세스 횟수를 반으로 줄일 수 있게되고, 결국 캐쉬 메모리의 미스 패널티를 반으로 줄일 수 있는 효과가 있다.

Description

ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치{Method and apparatus for controlling line size of cache memory in microprocessor using ARM7T}
도 1a 내지 도 1c는 미스 패널티, 미스율 및 평균 메모리 액세스 타임 각각과 캐쉬 메모리의 라인 사이즈와의 관계를 나타내는 그래프들이다.
도 2는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 미스가 발생하였을 경우, 캐쉬 메모리의 라인 사이즈 제어하는 본 발명에 의한 캐쉬 제어 장치를 설명하기 위한 블록도이다.
도 3의(a)~(d)는 ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드일 경우에, 캐쉬의 라인필 동작을 설명하기 위한 파형도들을 나타낸다.
도 4의(a)~(d)는 ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드일 경우에, 캐쉬의 라인필 동작을 설명하기 위한 파형도들을 나타낸다.
도 5는 본발명에 따른 ARM7T 프로세서(20)를 이용한 마이크로 프로세서에서 캐쉬 메모리의 라인 사이즈 제어 방법을 설명하기 위한 플로우 챠트를 나타낸다.
본발명은 ARM7T 프로세서를 이용한 제어시스템인 마이크로 프로세서에 관한 것으로, 특히, ARM7T 프로세서에서 사용하는 명령어 비트수에 따라 캐쉬 메모리의 라인 사이즈를 가변적으로 제어하는 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치에 관한 것이다.
일반적으로, ARM7T 프로세서는 프로그램 명령에 의하여 명령어 모드를 16-비트 모드 또는 32-비트 모드로 동작가능하다. 이때, 16-비트 모드는 명령어가 16비트로 구성되어 있는 것으로 썸(Thumb) 모드라고도 하며, 32-비트 모드 명령어가 32비트로 구성되어 있는 것으로 암(ARM) 모드라고도 한다.
현재, 각종 프로세서를 이용한 마이크로 프로세서를 설계시 성능을 향상시키기 위해 마이크로 프로세서 내부에 캐쉬 메모리(cache memory)를 두는 경향이다. 한편, 캐쉬 메모리의 성능을 결정하는 중요한 변수로는 캐쉬 메모리의 라인 사이즈(line size)가 있으며, 이는 평균 메모리 액세스 타임(memory access time), 미스 패널티(miss penalty) 및 미스율(miss rate)등과의 관계를 고려하여 가장 적절한 라인 사이즈를 선택하게 된다. 여기서, 캐쉬 메모리의 라인 사이즈는 캐쉬 메모리의 블록 사이즈를 의미한다.
도 1a 내지 도 1c는 미스 패널티, 미스율 및 평균 메모리 액세스 타임 각각과 캐쉬 메모리의 라인 사이즈와의 관계를 나타내는 그래프들로서, 도 1a는 미스 패널티와 라인 사이즈와의 관계를 나타내고, 도 1(b)는 미스율과 라인 사이즈와의 관계를 나타내고, 도 1c는 평균 메모리 액세스 타임과 라인 사이즈와의 관계를 각각 나타내는 그래프이다.
도 1a 내지 도 1c를 참조하면, 캐쉬 메모리의 라인 사이즈가 크다고 하여 캐쉬의 성능이 좋다고 할 수는 없다. 즉, 도 1a를 참조하면 라인 사이즈가 커지면 미스 패널티가 커짐을 알 수 있다. 여기서, 미스 패널티란 캐쉬 미스가 발생하여 외부의 주메모리와 액세스하여 캐쉬 메모리의 해당 라인을 주메모리에 저장된 데이터로 채우는 동작 즉, 라인 필(line fill) 동작을 수행하는 데 걸리는 시간이다. 또한, 평균 메모리 액세스 타임과 미스율은 어느정도의 라인 사이즈까지는 급격히 줄어들다가 더 이상 줄어들지 않게 된다. 따라서, 캐쉬 메모리의 라인 사이즈는 평균 메모리 액세스 타임, 미스 패널티 및 미스율등을 고려하여 적절하게 정해야 한다.
여기서, 캐쉬 메모리가 명령어 캐쉬 메모리인 경우 캐쉬 메모리의 라인 사이즈는 해당 라인(블록)이 가지는 명령어의 개수와 밀접한 관련이 있다. 예컨대, 32비트 명령어를 사용하는 32-비트 시스템에서 라인 사이즈가 16 바이트(byte)일 경우, 그 라인(블록)은 4개의 32-비트 명령어를 가지는 것이다. 그러나, 16비트 명령어를 사용하는 16-비트 시스템에서 라인 사이즈가 동일하게 16 바이트일 경우, 그 라인(블록)은 8개의 16-비트 명령어를 가지는 것이다.
ARM7T 프로세서의 경우 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작이 가능하며, 32비트 명령어를 사용할 때나 16비트 명령어를 사용때의 ARM7T 프로세서의 동작 성능에는 차이가 없다. 즉, ARM7T 프로세서가 32-비트 모드일 경우 캐쉬 메모리가 하나의 라인에 4개의 명령어를 가진다면, 동일한 동작성능을 얻기위해 16-비트 모드에서도 캐쉬 메모리가 하나의 라인에 4개의 명령어를 가지면된다. 결국, ARM7T 프로세서의 명령어 모드가 16- 비트 모드일 경우의 캐쉬 메모리의 라인 사이즈는 32-비트 모드에서의 라인 사이즈의 반만 가져도 동일한 동작성능을 얻을 수 있다. 이와같이, ARM7T 프로세서가 16-비트 모드일 때, 캐쉬 메모리의 라인 사이즈를 원래 라인 사이즈(32-비트 모드에서의 캐쉬 메모리의 라인 사이즈)의 반만 사용한다면, 캐쉬 미스가 발생되어 외부 주메모리로부터 필요한 명령어를 해당 라인에 채우기 위해 액세스하는 횟수를 줄임으로써 메모리 액세스 타임을 줄일 수 있으며, 또한, 라인 필할 캐쉬 메모리의 사이즈가 줄어듬으로써 라인 필하는 데 걸리는 시간인 미스 패널티를 줄일 수 있다.
그러나, 종래에는 ARM7T 프로세서의 명령어 모드에 상관없이 즉, ARM7T 프로세서가 16-비트 모드이거나 또는 32-비트 모드이거나 캐쉬 메모리의 라인 사이즈가 동일함으로써, 전술된 바와 같은 이점을 얻지 못하였다.
본 발명이 이루고자 하는 기술적 과제는 ARM7T 프로세서의 명령어 모드에 상응하여 캐쉬 메모리의 라인 사이즈를 가변시킬 수 있는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 메모리의 라인 사이즈 제어 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기 방법을 수행하도록 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 메모리의 동작을 제어하는 캐쉬 제어 장치를 제공하는 데 있다.
상기 과제를 이루기 위해, 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하는 ARM7T 프로 세서를 이용하고, 캐쉬 메모리를 내장한 본 발명에 의한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법은 상기 ARM7T 프로세서의 명령어 모드가 상기 32-비트 모드인가를 판단하는 (a)단계, (a)단계에서 32-비트 모드라고 판단되면, 제1논리레벨을 갖는 제어신호를 발생하는 (b)단계, 제1논리레벨을 갖는 제어신호에 따라 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 하는 (c)단계, (a)단계에서 16-비트 모드라고 판단되면, 제1논리레벨과 상보적인 제2논리레벨을 갖는 제어신호를 발생하는 (d)단계 및 제2논리레벨을 갖는 제어신호에 따라 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 하는 (e)단계로 이루어지는 것을 특징으로 한다.
상기 다른 과제를 이루기 위해, 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하고, 명령어 모드에 상응하여 제어신호를 발생하는 ARM7T 프로세서를 이용하고, 캐쉬 메모리를 내장한 본 발명에 의한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치는 제어신호에 상응하여 명령어 모드가 16-비트 모드이면 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 제어하고, 명령어 모드가 32-비트 모드이면 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 제어하는 캐쉬 제어 수단을 포함하는 것을 특징으로 한다.
이하, 본발명에 따른 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬메모리의 라인 사이즈 제어 방법 및 그 장치를 첨부한 도면들을 참조하여 다음과 같이 설명한다.
도 2는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 미스가 발생하였을 경우, 캐쉬 메모리의 라인 사이즈 제어하는 본 발명에 의한 캐쉬 제어 장치를 설명하기 위한 블록도로서, ARM7T 프로세서(20), 캐쉬 제어 장치(22) 및 캐쉬 메모리(24)를 포함하는 마이크로 프로세서(26)와 외부 주메모리(28)로 구성된다.
도 2에서 ARM7T 프로세서(20)는 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 명령어 모드를 가변할 수 있으며, 명령어 모드에 상응하여 제어신호(TBIT)를 출력한다. 예컨대, ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드이면 "고"논리레벨의 제어신호(TBIT)를 출력하고, ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드이면 "저"논리레벨을 갖는 제어신호(TBIT)를 출력한다. 캐쉬 제어 장치(22)는 ARM7T 프로세서(20)에서 출력되는 제어신호(TBIT)에 상응하여 캐쉬 메모리(24)의 라인 사이즈를 제어하고, ARM7T 프로세서(20)가 액세스하고자 하는 명령어가 캐쉬 메모리(24)에 있으면 ARM7T 프로세서(20)와 캐쉬 메모리(24)를 액세스시키고, 액세스하고자 하는 명령어가 캐쉬 메모리(24)에 없으면 주메모리(28)와 액세스하여 주메모리(28)에 있는 명령어를 캐쉬 메모리(24)에 옮기는 라인 필 동작을 수행하도록 제어한다. 즉, 캐쉬 제어 장치(22)는 ARM7T 프로세서(20)로부터 발생된 어드레스(ADD)를 이용하여 캐쉬 미스 또는 캐쉬 히트를 판단하여, 캐쉬 히트일 경우에는 캐쉬 메모리(24)에 있는 명령어(DATA)를 ARM7T 프로세서(20)로 전달한다. 한편, 캐쉬 미스가 발생되면 라인 필 동작을 수행하게 된다.
도 3의(a)~(d)는 ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드일 경우 에, 캐쉬의 라인필 동작을 설명하기 위한 파형도로서, 도 3의(a)는 ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드임을 나타내는 제어신호(TBIT)를 나타내고, 도 3의(b)는 ARM7T 프로세서(20)가 액세스하고자 하는 어드레스를 나타내고, 도 3의(c)는 라인필 동작을 수행시 캐쉬 제어 장치(22)가 주메모리(28)와 액세스하기 위한 어드레스(ADD)를 발생하는 것을 나타내고, 도 3의(d)는 캐쉬 제어 장치(22)에서 발생된 어드레스(ADD)에 해당하는 주메모리(28)에 저장된 명령어를 캐쉬 메모리(24)로 라인 필하는 것을 나타내는 파형도이다.
여기서, 캐쉬 메모리(24)의 라인 사이즈는 16byte이라 하고, 외부에 있는 주메모리(28)를 한번 액세스하는 데 걸리는 시간이 3사이클(cycle)이라 하고, 외부 주메모리(28)와 연결된 버스 크기는 32-비트라 하자. 이때, 캐쉬 메모리(24)의 라인 사이즈가 16byte이면, 해당라인은 4개의 32-비트 명령어를 가진다고 할 수 있다. 따라서, 캐쉬 미스가 발생되었을 경우 캐쉬 메모리(24)의 해당 라인을 채우기 위한 라인 필 동작을 수행하기 위해 주메모리(28)와 4번 액세스를 해야 하며, 이때 소요되는 시간은 12cycle이다. 즉, 캐쉬 미스에 따른 미스 패널티는 12cycle이 된다.
도 3의(a)~(d)를 참조하면, ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드이므로 ARM7T 프로세서(20)는 도 3의(a)에 도시된 바와 같이 "저"논리레벨을 갖는 제어신호(TBIT)를 출력하고, 캐쉬 제어 장치(22)는 "저"논리레벨을 갖는 제어신호(TBIT)에 상응하여 캐쉬 메모리(24)의 라인 사이즈를 원래의 라인 사이즈인 16byte로 한다. 이때, ARM7T 프로세서(20)가 액세스하고자 하는 어드레스(ADD) A를 발생하였는데 캐쉬 미스가 되면 캐쉬 제어 장치(22)는 도 3의(c)에 도시된 바와 같은 어드레스를 발생하며 주메모리(28)와 액세스한다. 즉, 하나의 명령어의 크기가 32비트이고, 버스의 크기가 32비트이고, 캐쉬의 라인 사이즈가 16바이트이므로 캐쉬메모리(24)의 해당 라인에는 4개의 32비트 명령어를 라인필할 수 있으며, 이를위해 캐쉬 제어부(22)는 먼저, 주메모리(28)의 어드레스(ADD) A와 액세스하여 하나의 32비트 명령어를 캐쉬 메모리(24)에 라인 필하고, 순차적으로 어드레스 (A+4), (A+8) 및 (A+C)와 액세스하여 캐쉬 메모리(24)의 라인 필 동작을 수행한다.
한편, 도 4의(a)~(d)는 ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드일 경우에, 캐쉬의 라인필 동작을 설명하기 위한 파형도로서, 도 4의(a)는 ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드임을 나타내는 제어신호(TBIT)를 나타내고, 도 4의(c)는 라인필 동작을 수행시 캐쉬 제어 장치(22)가 주메모리(28)와 액세스하기 위한 어드레스(ADD)를 발생하는 것을 나타내고, 도 4의(d)는 캐쉬 제어 장치(22)에서 발생된 어드레스(ADD)에 해당하는 주메모리(28)에 저장된 명령어를 캐쉬 메모리(24)로 라인 필하는 것을 나타내는 파형도이다.
여기서도, 외부에 있는 주메모리(28)를 한번 액세스하는 데 걸리는 시간이 3사이클(cycle)이고, 버스 크기는 32비트라 하자. 이때, 캐쉬의 라인 사이즈가 32-비트 모드에서와 같이 16byte이면, 해당라인은 8개의 16-비트 명령어를 가진다고 할 수 있으며, 버스의 크기가 32비트이므로 한 번의 액세스시 2개의 16비트 명령어를 캐쉬 메모리에 채울 수 있다. 따라서, 캐쉬 미스가 발생되었을 경우 캐쉬 라인 필 동작을 수행하기 위해 주메모리(28)와 4번 액세스를 해야 하며, 이때 소요되는 시간은 12cycle이다. 즉, 캐쉬 미스에 따른 미스 패널티는 12cycle이 된다.
그러나, 전술되었듯이 ARM7T 프로세서(20)는 32-비트 명령어를 사용할 때나 16-비트 명령어를 사용때의 ARM7T 프로세서(20)의 동작 성능에는 차이가 없으므로, ARM7T 프로세서의 모드가 16-비트 모드일 경우의 캐쉬 라인 사이즈는 32-비트 모드일 경우의 1/2 라인 사이즈만 가져도 동일한 효과를 얻을 수 있다. 즉, 캐쉬 메모리(24)의 라인사이즈를 32-비트 모드에서와 동일하게 16바이트로 한다면 8개의 명령어를 가지므로, 32-비트 모드에서와 동일하게 4개의 명령어를 가지도록 한다면 캐쉬 메모리(24)의 라인사이즈를 32-비트 모드 대비 1/2로 줄일 수 있게 된다.
도 4의(a)~(d)를 참조하면, ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드이므로 ARM7T 프로세서(20)는 도 4의(a)에 도시된 바와 같이 "고"논리레벨을 갖는 제어신호(TBIT)를 출력하고, 캐쉬 제어부(22)는 "고"논리레벨을 갖는 제어신호(TBIT)에 상응하여 캐쉬 메모리(24)의 라인 사이즈를 8byte로 한다. 이때, ARM7T 프로세서(20)가 액세스하고자 하는 어드레스 A를 발생하였는데 캐쉬 미스가 되면, 캐쉬 제어 장치(22)는 도 4의(c)에 도시된 바와 같은 어드레스를 발생하며 주메모리(28)와 액세스한다. 즉, 하나의 명령어의 크기가 16비트이고, 버스의 크기가 32비트이고, 캐쉬의 라인 사이즈가 8바이 트이므로 캐쉬 메모리(24)의 해당 라인에는 4개의 16비트 명령어를 라인필할 수 있다. 이를위해 캐쉬 제어 장치(22)는 주메모리(28)의 어드레스 A와 액세스하여 두개의 16비트 명령어를 캐쉬 메모리(24)에 라인 필하고, 순차적으로 어드레스 (A+4)와 액세스하면서 캐쉬 메모리(24)의 라인 필 동작을 수행한다.
도 4의(a)~(d)에 보인바와 같이, 외부 주메모리(28)와의 버스의 크기가 32비트이므로, 한 번의 액세스에 2개의 16비트 명령어를 라인필 할 수 있으며, 결국 2번의 액세스로 4개의 명령어를 라인필할 수 있게된다.
이와같이, ARM7T 프로세서(20)의 명령어 모드에 따라 캐쉬 메모리(24)의 라인 사이즈를 가변시킴으로써, 즉, ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드일 때, 캐쉬 메모리(24)의 라인 사이즈를 32-비트 모드일 때의 라인 사이즈대비 반으로 줄임으로써 외부 주메모리(28)와의 액세스 횟수를 반으로 줄일 수 있게되고, 결국 캐쉬 메모리(24)의 미스 패널티를 반으로 줄일 수 있게 된다.
도 5는 본발명에 따른 ARM7T 프로세서(20)를 이용한 마이크로 프로세서에서 캐쉬 메모리의 라인 사이즈 제어 방법을 설명하기 위한 플로우 챠트로서, ARM7T 프로세서의 명령어 모드가 32-비트인가를 판단하는 단계(제10단계) 및 제10단계에서의 판단 결과에 따라 캐쉬 메모리(24)의 라인 사이즈를 제1 또는 제2라인 사이즈로 제어하는 단계(제12~18단계)로 이루어진다.
도 2 및 도 5를 참조하여 본 발명에 따른 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬 미스가 발생되었을 경우, 캐쉬 메모리의 라인 사이즈 제어 방법을 설명한다. 먼저, ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드인가 또는 16-비트 모드인가를 판단한다(제10단계). 제10단계에서, ARM7T 프로세서(20)의 명령어 모드가 32-비트 모드라고 판단되면 ARM7T 프로세서(20)는 제1논리레벨(예컨대, "저"논리레벨)을 갖는 제어신호(TBIT)를 발생한다(제12단계). 제12단계 후에, 캐쉬 제어 장치(24)는 제1논리레벨을 갖는 제어신호(TBIT)에 상응하여 캐쉬 메모리(24)의 라인 사이즈를 제1라인 사이즈로 한다(제14단계). 예컨대, 캐쉬 메모리(24)의 라인 사이즈가 16바이트라면 16바이트로 정한다음, 전술된 바와같은 라인필 동작을 수행한다.
한편, 제10단계에서 ARM7T 프로세서(20)의 명령어 모드가 32-비트가 아니라면, 즉, 16-비트 모드라고 판단되면 ARM7T 프로세서(20)는 제1논리레벨과 상보적인 제2논리레벨(예컨대, "고"논리레벨)을 갖는 제어신호(TBIT)를 발생한다(제16단계). 제16단계 후에, 캐쉬 제어 장치(24)는 제2논리레벨을 갖는 제어신호(TBIT)에 상응하여 캐쉬 메모리(24)의 라인 사이즈를 (제1라인 사이즈/2)인 크기를 갖는 제2라인 사이즈로 한다(제18단계). 예컨대, ARM7T 프로세서(20)가 32-비트 모드에서 캐쉬 메모리(24)의 라인 사이즈가 16바이트라면 8바이트로 정한다음, 전술된 바와 같은 라인필 동작을 수행한다.
이와같이, ARM7T 프로세서(20)의 명령어 모드에 따라 즉, ARM7T 프로세서(20)의 명령어 모드가 16-비트 모드일 때, 캐쉬 메모리(24)의 라인 사이즈를 32-비트 모드일 때의 라인 사이즈의 반으로 줄임으로써 외부 주메모리(28)와의 액세스 횟수를 반으로 줄일 수 있게되고, 결국 캐쉬 메모리(24)의 미스 패널티를 반으로 줄일 수 있게 된다.
상술된 바와 같이, 본 발명에 의한 ARM7T 프로세서를 이용한 마이크로 프로세서에서 캐쉬의 라인 사이즈 제어 방법 및 그 장치는 ARM7T 프로세서의 명령어 모드가 16-비트 또는 32-비트 모드로 제어가능하다는 기능을 이용하여 명령어 모드 에 따라 캐쉬 메모리(24)의 라인 사이즈를 가변시킴으로써, ARM7T 프로세서가 16-비트 모드일 때는 캐쉬 메모리의 라인 사이즈를 원래의 캐쉬 라인 사이즈보다 반으로 줄임으로써 외부 주메모리와의 액세스 횟수를 반으로 줄일 수 있게되고, 결국 캐쉬 메모리의 미스 패널티를 반으로 줄일 수 있는 효과가 있다.

Claims (4)

  1. 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하는 ARM7T 프로세서를 이용하고, 캐쉬 메모리를 내장한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈 제어하는 방법에 있어서,
    (a)상기 ARM7T 프로세서의 명령어 모드가 상기 32-비트 모드인가를 판단하는 단계;
    (b)상기 (a)단계에서 상기 32-비트 모드라고 판단되면, 제1논리레벨을 갖는 제어신호를 발생하는 단계;
    (c)상기 제1논리레벨을 갖는 제어신호에 따라 상기 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 하는 단계;
    (d)상기 (a)단계에서 상기 16-비트 모드라고 판단되면, 상기 제1논리레벨과 상보적인 제2논리레벨을 갖는 제어신호를 발생하는 단계; 및
    (e)상기 제2논리레벨을 갖는 제어신호에 따라 상기 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 하는 단계로 이루어지는 것을 특징으로 하는 ARM7T 프로세 서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법.
  2. 제2항에 있어서, 상기 제1라인 사이즈는 상기 제2라인 사이즈보다 큰 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법.
  3. 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하고, 상기 명령어 모드에 상응하여 제어신호를 발생하는 ARM7T 프로세서를 이용하고, 캐쉬 메모리를 내장한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치에 있어서,
    상기 제어신호에 상응하여 상기 명령어 모드가 상기 16-비트 모드이면 상기 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 제어하고, 상기 명령어 모드가 상기 32-비트 모드이면 상기 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 제어하는 캐쉬 제어 수단을 포함하는 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치.
  4. 제3항에 있어서, 상기 캐쉬 제어 수단은 상기 제1라인 사이즈는 상기 제2라 인 사이즈보다 큰 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치.
KR1019990039538A 1999-09-15 1999-09-15 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치 KR100546298B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990039538A KR100546298B1 (ko) 1999-09-15 1999-09-15 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990039538A KR100546298B1 (ko) 1999-09-15 1999-09-15 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20010027669A KR20010027669A (ko) 2001-04-06
KR100546298B1 true KR100546298B1 (ko) 2006-01-26

Family

ID=19611619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990039538A KR100546298B1 (ko) 1999-09-15 1999-09-15 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100546298B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870175B1 (ko) * 2002-02-18 2008-11-25 삼성전자주식회사 에이알엠7 계열 마이크로 컨트롤러에서의 콘텍스트 스위치방법
KR100648293B1 (ko) 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301296A (en) * 1990-12-18 1994-04-05 Mitsubishi Denki Kabushiki Kaisha Microprocessor with cache memory
KR19980055665A (ko) * 1996-12-28 1998-09-25 구자홍 캐시 메모리 어드레스 영역의 조절 및 확장용 레지스터를 구비한 메모리 컨트롤러
KR20000025609A (ko) * 1998-10-13 2000-05-06 구자홍 가변 라인사이즈를 가지는 캐시 구조

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301296A (en) * 1990-12-18 1994-04-05 Mitsubishi Denki Kabushiki Kaisha Microprocessor with cache memory
KR19980055665A (ko) * 1996-12-28 1998-09-25 구자홍 캐시 메모리 어드레스 영역의 조절 및 확장용 레지스터를 구비한 메모리 컨트롤러
KR20000025609A (ko) * 1998-10-13 2000-05-06 구자홍 가변 라인사이즈를 가지는 캐시 구조

Also Published As

Publication number Publication date
KR20010027669A (ko) 2001-04-06

Similar Documents

Publication Publication Date Title
US7917701B2 (en) Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
US5247639A (en) Microprocessor having cache bypass signal terminal
KR20080102213A (ko) 명령 프리페치 버퍼 깊이의 동적 제어를 갖는 데이터 프로세서 및 그 방법
CN104978284B (zh) 处理器子程序高速缓冲存储器
IE990754A1 (en) An apparatus for software initiated prefetch and method therefor
JP2013529816A (ja) メモリデバイスの消費電力を減らす方法およびシステム
KR101093317B1 (ko) 데이터 처리 시스템 내의 프리패치 제어
JP2001060169A (ja) キャッシュコントローラ及びコンピュータシステム
TWI260503B (en) Memory accelerator for arm processors
KR20080014402A (ko) 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치
CN114925001A (zh) 处理器、页表预取方法、电子设备
KR100546298B1 (ko) Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치
US5761718A (en) Conditional data pre-fetching in a device controller
JP3215105B2 (ja) メモリアクセス装置
JP2006251923A (ja) 先読み制御方法
JP2003131945A (ja) キャッシュメモリ装置
CA2378777A1 (en) Shared program memory with fetch and prefetch buffers
US6742102B2 (en) Microprocessor and cache controlling method
KR920001102B1 (ko) 정보 처리 장치
JPH0534042Y2 (ko)
JPH02163828A (ja) データ処理装置
JP2851777B2 (ja) バス制御方法及び情報処理装置
JP2003337790A (ja) バス制御回路およびプロセッサ
JP2924708B2 (ja) 情報処理装置

Legal Events

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

Payment date: 20100114

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee