KR20080098120A - 데이터 처리장치 및 그 데이터 처리방법 - Google Patents
데이터 처리장치 및 그 데이터 처리방법 Download PDFInfo
- Publication number
- KR20080098120A KR20080098120A KR1020070043399A KR20070043399A KR20080098120A KR 20080098120 A KR20080098120 A KR 20080098120A KR 1020070043399 A KR1020070043399 A KR 1020070043399A KR 20070043399 A KR20070043399 A KR 20070043399A KR 20080098120 A KR20080098120 A KR 20080098120A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- processor
- cache memory
- requested
- stored
- Prior art date
Links
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
본 발명은 데이터 처리장치 및 그 데이터 처리방법에 관한 것이다. 본 발명은 캐쉬 메모리를 포함하는 복수의 프로세서를 가지는 데이터 처리장치에 있어서, 상기 각 프로세서는, 외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬 메모리에 저장되어 있는지 여부를 저장하는 저장부를 포함하고, 상기 저장된 정보에 기초하여 상기 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 것을 특징으로 한다. 이에 의하여, 캐쉬 메모리에 접근하는 회수를 줄여 연산속도를 빠르게 하고 전원의 소비를 절약할 수 있다.
Description
도 1은 본 발명에 따른 데이터 처리장치의 구성을 도시한 도면이며,
도 2는 본 발명에 따른 데이터 처리장치의 데이터 처리과정을 도시한 도면이며,
도 3은 본 발명에 따른 데이터 처리장치의 데이터 처리방법을 도시한 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 프로세서 20 : CPU
30 : 캐쉬 메모리 40 : 저장부
50 : 제1저장부 60 : 제2저장부
70 : 통신버스 80 : 시스템 버스
90 : 메인 메모리
본 발명은 데이터 처리장치 및 그 데이터 처리방법에 관한 것이다. 보다 상 세하게는 복수의 프로세서를 가지는 데이터 처리장치 및 그 데이터 처리방법에 관한 것이다.
데이터 처리장치는 프로세서에 의해 데이터 처리를 수행한다. 이 중에서도, 최근의 데이터 처리장치는 복수 개의 프로세서를 포함하여 보다 다양한 동작을 효율적으로 수행할 수 있다. 여기서, 프로세서는 메인 메모리에 접근하는 과정을 줄임으로써 데이터의 처리속도를 향상시키기 위해 캐쉬 메모리를 구비한다.
각 프로세서는 자신이 필요한 정보가 캐쉬 메모리에 존재하지 않는 경우 다른 프로세서에 구비된 캐쉬 메모리에 자신이 필요한 정보가 존재하는지 확인한다. 여기서, 프로세서가 다른 프로세서로 필요한 데이터를 요청하는 동작을 브로드캐스팅(Broadcasting)이라 하고, 요청을 받은 프로세서가 요청된 데이터가 존재하는지 확인하는 동작을 스누핑(Snooping)이라 한다. 그리하여, 각 프로세서는 브로드캐스팅 동작을 수행하여 다른 프로세서에 자신이 필요한 정보가 존재하지 않는 경우, 메인 메모리에 접근하여 자신이 필요한 정보를 참조하게 된다.
그런데, 종래의 데이터 처리장치는 다른 프로세서가 가지고 있지 않음에도 불구하고 다른 프로세서의 캐쉬 메모리로 브로드캐스팅을 수행하기 때문에, 데이터의 처리속도가 낮아지고 불필요한 전원을 소비하는 문제가 있다.
따라서, 본 발명은 프로세서가 요청하는 데이터가 외부 프로세서에 존재하는 경우에 한해 외부 프로세서로 데이터를 요청함으로써, 전원의 소비를 절약하고 데이터의 처리속도를 빠르게 할 수 있는 데이터 처리장치 및 그 데이터 처리방법을 제공하는 것을 목적으로 한다.
상기 목적은, 캐쉬 메모리를 포함하는 복수의 프로세서를 가지는 데이터 처리장치에 있어서, 상기 각 프로세서는, 외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬 메모리에 저장되어 있는지 여부를 저장하는 저장부를 포함하고, 상기 저장된 정보에 기초하여 상기 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 것을 특징으로 하는 데이터 처리장치에 의해 달성된다.
그리고, 상기 저장부는, 상기 외부 프로세서가 요청하는 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 제1저장부와; 상기 요청하는 데이터의 어드레스 정보를 저장하는 제2저장부를 포함하는 것이 바람직하다.
여기서, 상기 제1저장부는 통신을 수행하기 위한 통신버스에 의해 상호 연결되는 것이 바람직하다.
한편, 캐쉬메모리를 포함하는 복수의 프로세서를 가지는 데이터처리장치의 데이터 처리방법에 있어서, 외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계와; 상기 저장된 정보에 기초하여 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 판단하는 단계와; 상기 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 단계를 포함하는 것을 특징으로 하는 데이터 처리장치의 데이터 처리방법 에 의해서도 상기 목적은 달성된다.
여기서, 상기 요청하는 데이터가 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계는, 상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 단계와; 상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있지 않은 경우, 상기 요청하는 데이터의 어드레스 정보를 저장하는 단계를 포함하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 데이터 처리장치에 대해 상세히 설명한다.
도 1은 본 발명에 따른 데이터 처리장치(100)의 구성을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명에 따른 데이터 처리장치(100)는 CPU(20)와, 캐쉬 메모리(30)와, 저장부(40)를 구비한 복수의 프로세서(10a, 10b, 10c, ...)와 통신버스(70)와, 시스템 버스(80)와, 메인 메모리(90)를 포함한다.
복수의 프로세서(10a, 10b, 10c, ...)에 포함된 CPU(20)는 데이터 또는 명령어의 읽기, 쓰기 동작을 수행한다.
캐쉬 메모리(30)는 각 프로세서(10a, 10b, 10c, ...)에 필요한 정보를 저장한다. 캐쉬 메모리(30)는 CPU(20)가 연산을 수행하기 위해 필요한 데이터가 일시적으로 저장되는 L1 캐쉬 메모리(미도시)와, 연산이 수행된 결과값이 저장되는 L2 캐쉬 메모리(미도시)를 포함할 수 있다.
저장부(40)는 외부 프로세서(10b, 10c, ...)가 요청하는 데이터가 당해 프로세서(10a)의 캐쉬 메모리(30a)에 저장되어 있는지 여부를 저장한다. 본 발명에 따 른 저장부(40)는 외부 프로세서(10b, 10c, ...)가 요청한 데이터가 당해 캐쉬 메모리(30a)에 저장되어 있는지 여부에 대한 정보를 저장하는 제1저장부(50)와, 당해 프로세서가 요청하는 데이터의 어드레스 정보를 저장하는 제2저장부(60)를 포함한다.
제1저장부(50)는 프로세서(10)가 캐쉬 메모리(30)에 데이터를 요청하는 경우, 해당하는 데이터의 어드레스에 대응하여 카운트를 1씩 증가시킨다. 여기서, 카운트가 0인 경우 프로세서(10)는 어드레스에 대응하는 비트정보를 1로 설정하여 요청하는 데이터가 자신의 캐쉬 메모리(30)에 저장되어 있음을 저장한다.
프로세서(10)가 자신이 요청하는 데이터를 캐쉬 메모리(30)로부터 추출하면, 제1저장부(50)는 해당하는 데이터의 어드레스에 대응하는 카운트를 1씩 감소시킨다. 여기서, 카운트가 감소하여 0이 되면 프로세서(10)는 어드레스에 대응하는 비트정보를 0으로 설정하여 요청하는 데이터가 자신의 캐쉬 메모리(30)에 저장되어 있지 않음을 저장한다.
복수의 프로세서(10) 중 어느 하나가 데이터를 요청하면, 다른 프로세서(10)는 자신의 제1저장부(50)에 저장된 정보에 기초하여 요청한 데이터가 자신의 캐쉬 메모리(30)에 존재하는지 여부를 통신버스(70)에 의해 전달한다. 즉, 제1저장부(50)에 어드레스에 대응하는 비트정보가 1이면 요청한 데이터가 존재하고, 비트정보가 0이면 요청한 데이터가 존재하지 않는 것이다.
제2저장부(60)는 프로세서(10a)가 요청한 데이터가 다른 프로세서(10b, 10c, ...)에 존재하지 않는 경우 요청한 데이터의 어드레스 정보를 저장한다. 그리 하여, 프로세서(10a)는 다른 프로세서(10b, 10c, ...)에 데이터를 요청하기 전에 제2저장부(60)에 저장된 정보를 참조하여, 해당하는 어드레스가 존재하면 브로드캐스팅을 수행하지 않고 직접 시스템 버스(80)를 통해 메인 메모리(90)에 데이터를 요청한다.
이로써, 다른 프로세서(10b, 10c, ...)의 캐쉬 메모리(30b, 30c, ...)에 불필요하게 접근하지 않아도 되므로 소비전력을 감소시킬 수 있으며 데이터 처리속도를 증가시킬 수 있다.
이하, 도 2를 참조하여 본 발명에 따른 데이터 처리장치(100)가 제1저장부(50) 및 제2저장부(60)에 정보를 저장하는 과정을 설명한다.
도 2에 도시된 바와 같이, 제1저장부(50)는 데이터 블록에 해당하는 어드레스 정보와, 이에 대응하는 카운트를 1만큼 증가시킨다. 여기서, 어드레스 정보 및 카운트 정보는 메인 메모리(90)의 어드레스 정보가 캐쉬메모리(30)에 저장되어 있는지 여부와, 메인 메모리(90)로부터 캐쉬 메모리(30)로 데이터가 이동하는 개수를 의미한다. 만일, 카운트가 0인 경우 프로세서(10a)는 P-bit를 1로 설정하여 해당하는 블록이 자신의 캐쉬메모리(30)에 캐쉬되어 있음을 다른 프로세서(10b, 10c, ...)에 알린다.
그리고, 프로세서(10a)가 데이터를 요청하는 경우 다른 프로세서(10b, 10c, ...)는 자신의 캐쉬메모리(30b, 30c, ...)에 캐쉬되어 있는지 여부를 통신버스(70)를 통해 전달한다.
그리하여, 데이터를 요청한 프로세서(10a)는 다른 프로세서(10b, 10c, ...) 중 어느 하나가 자신이 요청하는 데이터를 캐쉬메모리(30b, 30c, ...)에 저장하고 있지 않음을 통신버스(70)를 통해 전달하는 경우, 프로세서(10a)는 자신이 요청한 데이터의 어드레스를 제2저장부(60)의 Area Tag에 저장한다. 따라서, 제2저장부(60)에 저장된 어드레스의 데이터가 필요한 경우, 다른 프로세서(10b, 10c, ...)로의 브로드캐스팅 과정을 생략하고 직접 메인 메모리(90)에 요청할 수 있다.
여기서, 본 발명에 따른 제1저장부(50)와, 제2저장부(60)는 캐쉬 메모리(30)보다 작은 용량의 저장공간을 가지며, 제1저장부(50)가 통신버스(70)에 의해 상호 통신을 수행할 수 있으므로, 각 프로세서(10a)는 외부 프로세서(10b, 10c, ...)에 접근하지 않아도 자신이 요청하는 데이터가 외부 프로세서(10b, 10c, ...)에 저장되어 있는지 여부를 판단하는 데 있어서, 전원의 소비를 절약할 수 있고 데이터의 처리속도를 증가시킬 수 있다.
이하, 도 3을 참조하여 본 발명에 따른 데이터 처리장치(100)의 동작과정에 대해 상세히 설명한다.
먼저, 각 프로세서(10a)는 외부 프로세서(10b, 10c, ...)가 요청하는 데이터가 당해 프로세서(10a)의 캐쉬메모리(30a)에 저장되어 있는지 여부를 저장한다(S10). 여기서, 단계 S10은 외부 프로세서(10b, 10c, ...)가 요청한 데이터가 당해 캐쉬 메모리(30a)에 저장되어 있는지 여부에 대한 정보를 제1저장부(50a)에 저장하는 단계와, 외부 프로세서(10b, 10c, ...)가 요청한 데이터가 당해 캐쉬 메모리(30a)에 저장되어 있지 않은 경우, 요청하는 데이터의 어드레스 정보를 제2저장부(60a)에 저장하는 단계를 포함할 수 있다.
그리고, 단계 S10에서 저장된 정보에 기초하여 자신이 요청하는 데이터가 외부 프로세서(10b, 10c, ...)의 캐쉬메모리(30b, 30c, ...)에 저장되어 있는지 여부를 판단한다(S20).
그리하여, 자신이 요청하는 데이터가 외부 프로세서(10b, 10c, ...)의 캐쉬 메모리(30b, 30c, ...)에 저장되어 있지 않은 경우, 메인메모리(90)에 데이터를 요청한다(S30).
이상, 바람직한 실시예를 통하여 본 발명에 관하여 상세히 설명하였으나, 본 발명은 이에 한정되는 것은 아니며 특허청구범위 내에서 다양하게 실시될 수 있다.
이상 설명한 바와 같이, 본 발명에 따른 데이터 처리장치 및 그 데이터 처리방법에 의하면, 프로세서가 요청하는 데이터가 외부 프로세서에 존재하는 경우에 한해 외부 프로세서로 데이터를 요청함으로써, 외부 프로세서로 데이터를 요청하는 회수를 줄여 전원의 소비를 절약하고 데이터의 처리속도를 빠르게 할 수 있다.
Claims (5)
- 캐쉬 메모리를 포함하는 복수의 프로세서를 가지는 데이터 처리장치에 있어서,상기 각 프로세서는,외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬 메모리에 저장되어 있는지 여부를 저장하는 저장부를 포함하고,상기 저장된 정보에 기초하여 상기 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 것을 특징으로 하는 데이터 처리장치.
- 제1항에 있어서,상기 저장부는,상기 외부 프로세서가 요청하는 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 제1저장부와;상기 요청하는 데이터의 어드레스 정보를 저장하는 제2저장부를 포함하는 것을 특징으로 하는 데이터 처리장치.
- 제2항에 있어서,상기 제1저장부는 통신을 수행하기 위한 통신버스에 의해 상호 연결되는 것 을 특징으로 하는 데이터 처리장치.
- 캐쉬메모리를 포함하는 복수의 프로세서를 가지는 데이터처리장치의 데이터 처리방법에 있어서,외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계와;상기 저장된 정보에 기초하여 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 판단하는 단계와;상기 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 단계를 포함하는 것을 특징으로 하는 데이터 처리장치의 데이터 처리방법.
- 제4항에 있어서,상기 요청하는 데이터가 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계는,상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 단계와;상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있지 않은 경우, 상기 요청하는 데이터의 어드레스 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 처리장치의 데이터 처리방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070043399A KR101416248B1 (ko) | 2007-05-04 | 2007-05-04 | 데이터 처리장치 및 그 데이터 처리방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070043399A KR101416248B1 (ko) | 2007-05-04 | 2007-05-04 | 데이터 처리장치 및 그 데이터 처리방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080098120A true KR20080098120A (ko) | 2008-11-07 |
KR101416248B1 KR101416248B1 (ko) | 2014-07-07 |
Family
ID=40285703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070043399A KR101416248B1 (ko) | 2007-05-04 | 2007-05-04 | 데이터 처리장치 및 그 데이터 처리방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101416248B1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100371140B1 (ko) * | 2000-01-28 | 2003-02-07 | 한국전자통신연구원 | 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법 |
-
2007
- 2007-05-04 KR KR1020070043399A patent/KR101416248B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101416248B1 (ko) | 2014-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI408550B (zh) | 對資料處理設備中共用記憶體之寫入存取請求之處理 | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
US6820143B2 (en) | On-chip data transfer in multi-processor system | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
TWI773683B (zh) | 使用在以一中央處理器單元為基礎的系統中之適應性壓縮提供記憶體頻寬壓縮 | |
KR20150057798A (ko) | 캐시 제어 장치 및 방법 | |
US20190095347A1 (en) | Multi-port shared cache apparatus | |
US11921650B2 (en) | Dedicated cache-related block transfer in a memory system | |
US11354256B2 (en) | Multi-core interconnection bus, inter-core communication method, and multi-core processor | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
US9372795B2 (en) | Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method | |
US9396122B2 (en) | Cache allocation scheme optimized for browsing applications | |
US7779205B2 (en) | Coherent caching of local memory data | |
KR20150038367A (ko) | 스티키 제거 엔진을 구비한 시스템 캐시 | |
KR102353859B1 (ko) | 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈 | |
US7757046B2 (en) | Method and apparatus for optimizing line writes in cache coherent systems | |
KR20080098120A (ko) | 데이터 처리장치 및 그 데이터 처리방법 | |
US20140281234A1 (en) | Serving memory requests in cache coherent heterogeneous systems | |
JP6209573B2 (ja) | 情報処理装置および情報処理方法 | |
US11422935B2 (en) | Direct mapping mode for associative cache | |
US8117393B2 (en) | Selectively performing lookups for cache lines | |
US20230101038A1 (en) | Deterministic mixed latency cache | |
KR20060037174A (ko) | 다중처리시스템에서의 스누핑 장치 및 그 방법 | |
KR20080041517A (ko) | 데이터 처리장치 및 그 전원절감방법 | |
KR20050116714A (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: 20170626 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190701 Year of fee payment: 6 |