KR20080098120A - 데이터 처리장치 및 그 데이터 처리방법 - Google Patents

데이터 처리장치 및 그 데이터 처리방법 Download PDF

Info

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
Application number
KR1020070043399A
Other languages
English (en)
Other versions
KR101416248B1 (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 KR1020070043399A priority Critical patent/KR101416248B1/ko
Publication of KR20080098120A publication Critical patent/KR20080098120A/ko
Application granted granted Critical
Publication of KR101416248B1 publication Critical patent/KR101416248B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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

Abstract

본 발명은 데이터 처리장치 및 그 데이터 처리방법에 관한 것이다. 본 발명은 캐쉬 메모리를 포함하는 복수의 프로세서를 가지는 데이터 처리장치에 있어서, 상기 각 프로세서는, 외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬 메모리에 저장되어 있는지 여부를 저장하는 저장부를 포함하고, 상기 저장된 정보에 기초하여 상기 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 것을 특징으로 한다. 이에 의하여, 캐쉬 메모리에 접근하는 회수를 줄여 연산속도를 빠르게 하고 전원의 소비를 절약할 수 있다.

Description

데이터 처리장치 및 그 데이터 처리방법{DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD THEREOF}
도 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. 캐쉬 메모리를 포함하는 복수의 프로세서를 가지는 데이터 처리장치에 있어서,
    상기 각 프로세서는,
    외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬 메모리에 저장되어 있는지 여부를 저장하는 저장부를 포함하고,
    상기 저장된 정보에 기초하여 상기 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 것을 특징으로 하는 데이터 처리장치.
  2. 제1항에 있어서,
    상기 저장부는,
    상기 외부 프로세서가 요청하는 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 제1저장부와;
    상기 요청하는 데이터의 어드레스 정보를 저장하는 제2저장부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  3. 제2항에 있어서,
    상기 제1저장부는 통신을 수행하기 위한 통신버스에 의해 상호 연결되는 것 을 특징으로 하는 데이터 처리장치.
  4. 캐쉬메모리를 포함하는 복수의 프로세서를 가지는 데이터처리장치의 데이터 처리방법에 있어서,
    외부 프로세서가 요청하는 데이터가 당해 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계와;
    상기 저장된 정보에 기초하여 당해 프로세서가 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬메모리에 저장되어 있는지 여부를 판단하는 단계와;
    상기 요청하는 데이터가 상기 외부 프로세서의 상기 캐쉬 메모리에 저장되어 있지 않은 경우, 메인메모리에 데이터를 요청하는 단계를 포함하는 것을 특징으로 하는 데이터 처리장치의 데이터 처리방법.
  5. 제4항에 있어서,
    상기 요청하는 데이터가 상기 캐쉬메모리에 저장되어 있는지 여부를 저장하는 단계는,
    상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있는지 여부에 대한 정보를 저장하는 단계와;
    상기 외부 프로세서가 요청한 데이터가 당해 캐쉬메모리에 저장되어 있지 않은 경우, 상기 요청하는 데이터의 어드레스 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 처리장치의 데이터 처리방법.
KR1020070043399A 2007-05-04 2007-05-04 데이터 처리장치 및 그 데이터 처리방법 KR101416248B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100371140B1 (ko) * 2000-01-28 2003-02-07 한국전자통신연구원 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법

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