KR100546298B1 - Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치 - Google Patents
Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
- G06F2212/6012—Reconfiguration 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
도 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)
- 사용자의 요구에 따라 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항에 있어서, 상기 제1라인 사이즈는 상기 제2라인 사이즈보다 큰 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법.
- 사용자의 요구에 따라 16비트 명령어를 사용하는 16-비트 모드 또는 32비트 명령어를 사용하는 32-비트 모드로 동작하고, 상기 명령어 모드에 상응하여 제어신호를 발생하는 ARM7T 프로세서를 이용하고, 캐쉬 메모리를 내장한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치에 있어서,상기 제어신호에 상응하여 상기 명령어 모드가 상기 16-비트 모드이면 상기 캐쉬 메모리의 라인 사이즈를 제1라인 사이즈로 제어하고, 상기 명령어 모드가 상기 32-비트 모드이면 상기 캐쉬 메모리의 라인 사이즈를 제2라인 사이즈로 제어하는 캐쉬 제어 수단을 포함하는 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치.
- 제3항에 있어서, 상기 캐쉬 제어 수단은 상기 제1라인 사이즈는 상기 제2라 인 사이즈보다 큰 것을 특징으로 하는 ARM7T 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따라 캐쉬 메모리의 라인 사이즈를 제어하는 캐쉬 제어 장치.
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)
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)
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 | 구자홍 | 가변 라인사이즈를 가지는 캐시 구조 |
-
1999
- 1999-09-15 KR KR1019990039538A patent/KR100546298B1/ko not_active IP Right Cessation
Patent Citations (3)
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 |