KR20120031744A - 프로세서 및 그 동작 방법 - Google Patents

프로세서 및 그 동작 방법 Download PDF

Info

Publication number
KR20120031744A
KR20120031744A KR1020100093307A KR20100093307A KR20120031744A KR 20120031744 A KR20120031744 A KR 20120031744A KR 1020100093307 A KR1020100093307 A KR 1020100093307A KR 20100093307 A KR20100093307 A KR 20100093307A KR 20120031744 A KR20120031744 A KR 20120031744A
Authority
KR
South Korea
Prior art keywords
memory
area
processor
mode
local
Prior art date
Application number
KR1020100093307A
Other languages
English (en)
Other versions
KR101687995B1 (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 KR1020100093307A priority Critical patent/KR101687995B1/ko
Priority to US13/067,732 priority patent/US8862825B2/en
Priority to EP11179435.0A priority patent/EP2434409B1/en
Publication of KR20120031744A publication Critical patent/KR20120031744A/ko
Application granted granted Critical
Publication of KR101687995B1 publication Critical patent/KR101687995B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (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

프로세서 및 그 동작 방법이 개시된다. 본 발명의 실시예들에 따르면, 프로세서의 실행 모드에 따라서 엑세스하는 L1 메모리를 달리 함으로써, 프로세서의 동작 성능을 향상 시킬 수 있다. 또한, 로컬/스택 영역을 프로세서의 외부에 위치하는 DRAM에 배치함으로써, 성능 저하 없이도 스크래치 패드 메모리의 크기를 감소시킬 수 있다. 또한, 프로세서의 코어가 vliw 모드로 수행 중인 경우, 코어가 캐쉬 메모리로 데이터 엑세스함으로써, 외부 컴포넌트에 의한 스크래치 패드 메모리에 대한 메모리 엑세스가 발생하여도, 스크래치 패드 메모리에 대한 병목 현상이 발생하지 않을 수 있다.

Description

프로세서 및 그 동작 방법{Processor and Method thereof}
본 발명의 실시예들은 프로세서 및 그 동작 방법에 관한 것으로서, 보다 구체적으로는 코어스 그래인 어레이 모드 및 vliw 모드를 지원하는 프로세서 및 그 동작 방법에 관한 것이다.
일반적으로 프로세서의 데이터 메모리 구조는 성능과 비용을 고려하여 작은 크기지만 속도가 빠른 L1 메모리를 프로세서에 내장하고 보다 큰 용량의 느린 메모리는 시스템 DRAM 등 프로세서 외부의 자원을 이용하도록 설계하고 있다.
도 1은 종래의 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)의 구성을 나타내는 도면이다.
도 1을 참조하면, 코어스 그래인 어레이 모드 및 vliw 모드를 지원하는 종래의 프로세서(100)는 코어(Core)(110), 데이터 메모리 제어부(Data Memory Controller, DMC)(120) 및 스크래치 패드 메모리(Scratch Pad Memory)(130)를 포함한다.
종래의 프로세서의 코어(110)는 다수의 연산부(Functional Unit, FU)를 일정한 격자 모양으로 배치한 구조를 갖고 있으며, 코어스 그래인 어레이 모드 수행을 통해 쉽게 다수의 연산부에서 연산을 병렬로 수행하여 높은 성능향상 효과를 얻을 수 있다.
종래의 프로세서(100)는 소프트웨어 코드 중 입력 데이터 배열에서 순차적으로 값을 읽어 연산하고 출력 데이터 배열에 결과값을 쓰는 형식의 루프(Loop)에 의한 반복 수행 루틴이 있을 경우, 이 부분을 코어스 그래인 어레이 모드를 통해 처리한다. 따라서 코어스 그래인 어레이 모드에서 데이터 메모리 접근 패턴은 주로 순차 접근 패턴이 된다. 이러한 순차 접근 패턴의 경우 시공간 구역성(Temporal/Spatial Locality)가 적기 때문에 L1 데이터 메모리로 캐쉬 메모리를 사용할 경우 저장 용량당 면적도 커지고 실패율(Miss Rate)가 높아지면서 성능 또한 좋지 않게 나타난다.
이와 같은 코어스 그래인 어레이 모드가 최적의 효율을 발휘하려면 데이터 메모리 구조는 입출력 데이터 배열을 크게 가져갈 수 있도록 단위용량당 면적 비용이 적은 스크래치 패드 메모리가 적합하다.
그러나, 코어스 그래인 어레이 모드는 루프 연산 부분만을 가속할 수 있기 때문에 루프 연산 이외의 일반적인 루틴은 vliw 모드로 실행하게 된다.
vliw 모드는 코어(110)의 복수 개의 연산부 중 일부의 연산부만을 사용하기 때문에 연산의 병렬 수행 성능은 떨어지지만 루프 연산 외에도 일반적인 소프트웨어 코드와 함수 호출등을 모두 수행할 수 있기 때문에 하나의 소프트웨어 코드를 온전하게 실행하기 위해서 프로세서에 꼭 필요한 기능이다.
vliw 모드 실행중에는 스택(Stack) 접근, 전역변수 접근 등이 자유롭게 나타나기 때문에 데이터 메모리 접근 패턴은 시공간 구역성이 비교적 높다.
이와 같은 vliw 모드가 최적의 효율을 발휘하려면 L1 데이터 메모리 구조는 구역성을 활용하여 성능을 향상시키고 외부 메모리 대역폭(Bandwidth)을 줄여 줄 수 있는 캐쉬 메모리가 적합하다.
한편, 종래의 프로세서(100)는 L1 메모리로서 스크래치 패드 메모리(130)만을 포함하고 있다. 따라서, 종래의 프로세서(100)에서는 코어스 그래인 어레이 모드에서 이용되는 변수가 저장(Store)되는 공용 영역(Shared Section) 및 vliw 모드에서 이용되는 변수가 저장되는 로컬/스택 영역(Local/Stack Section)이 모두 스크래치 패드 메모리(130)에 포함된다. 이 때, 종래의 코어(110)는 수행되는 실행 모드(즉, 코어스 그래인 어레이 모드 또는 vliw 모드 중 어느 하나)에 따라 데이터 메모리 제어부(120)를 통해서 스크래치 패드 메모리(130)로 엑세스(Access)할 수 있다.
따라서 종래의 프로세서(100)에서는 코어(110)의 실행 모드에 상관 없이 항상 스크래치 패드 메모리(130)에 엑세스하게 된다. 또한, 스크래치 패드 메모리(130)에 대해서 코어(110) 외에도 버스 슬레이브(Bus Slave)을 통한 외부 엑세스가 동시에 발생하는 경우, 스크래치 패드 메모리(130)의 실행 성능이 저하될 수 있다.
본 발명의 일실시예에 따른 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)는, 코어(Core), 상기 코어스 그래인 어레이 모드에서 이용되는 변수가 저장(Store)되는 공용 영역(Shared Section)을 포함하는 스크래치 패드 메모리(Scratch Pad Memory), 상기 vliw 모드에서 이용되는 변수가 저장되는 로컬/스택 영역(Local/Stack Section)을 포함하는 DRAM(Dynamic Random Access Memory)으로부터 상기 vliw 모드에서 이용되는 변수를 캐슁(Caching)하는 캐쉬 메모리(Cache Memory) 및 상기 코어로부터 메모리 엑세스 요청(Request)이 발생하는 경우, 상기 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 상기 메모리 엑세스 요청이 상기 공용 영역 및 상기 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단하는 주소 디코딩부(Address Decoding Unit)를 포함하고, 상기 코어는 상기 메모리 주소가 상기 공용 영역에 대응하는 경우, 상기 스크래치 패드 메모리로 엑세스하고, 상기 메모리 주소가 상기 로컬/스택 영역에 대응하는 경우, 상기 캐쉬 메모리로 엑세스한다.
본 발명의 일실시예에 따른 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)의 동작 방법은, 메모리 엑세스 요청이 발생하는 경우, 상기 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 상기 메모리 엑세스 요청이 공용 영역 및 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단하는 단계 및 상기 메모리 주소가 상기 공용 영역에 대응하는 경우, 스크래치 패드 메모리로 엑세스하고, 상기 메모리 주소가 상기 로컬/스택 영역에 대응하는 경우, 캐쉬 메모리로 엑세스하는 단계를 포함하고, 상기 공용 영역은 상기 코어스 그래인 어레이 모드에서 이용되는 변수를 저장(Store)하고, 상기 로컬/스택 영역은 상기 vliw 모드에서 이용되는 변수를 저장한다.
프로세서의 실행 모드에 따라서 엑세스하는 L1 메모리를 달리 함으로써, 프로세서의 동작 성능을 향상 시킬 수 있다.
또한, 로컬/스택 영역을 프로세서의 외부에 위치하는 DRAM에 배치함으로써, 성능 저하 없이도 스크래치 패드 메모리의 크기를 감소시킬 수 있다.
또한, 프로세서의 코어가 vliw 모드로 수행 중인 경우, 코어가 캐쉬 메모리로 데이터 엑세스함으로써, 외부 컴포넌트에 의한 스크래치 패드 메모리에 대한 메모리 엑세스가 발생하여도, 스크래치 패드 메모리에 대한 병목 현상이 발생하지 않을 수 있다.
도 1은 종래의 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)의 구성을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 프로세서(200)의 구성을 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 프로세서의 동작 방법을 나타내는 흐름도이다.
이하에서, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일실시예에 따른 프로세서(200)의 구성을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)(200)는 코어(Core)(210), 주소 디코딩부(Address Decoding Unit)(220), 캐쉬 메모리(Cache Memory)(240) 및 스크래치 패드 메모리(Scratch Pad Memory)(250)를 포함한다.
캐쉬 메모리(240)는 DRAM(Dynamic Random Access Memory)(270)으로부터 vliw 모드에서 이용되는 변수를 캐슁(Caching)한다.
일실시예에 따른 DRAM(270)은 vliw 모드에서 이용되는 변수가 저장되는 로컬/스택 영역(Local/Stack Section)을 포함할 수 있다. 이 때, 일실시예에 따른 DRAM(270)은 프로세서(200)의 외부에 위치할 수 있다.
스크래치 패드 메모리(250)는 코어스 그래인 어레이 모드에서 이용되는 변수가 저장되는 공용 영역(Shared Section)을 포함한다.
본 발명의 일측에 따르면, 프로그래머(Programer)는 소프트웨어(Software)를 프로그래밍하는 경우, 전역 변수를 선언할 때, 전역 변수가 어느 데이터 영역에 위치하는지(즉, 로컬/스택 영역에 위치하는지 또는 공용 영역에 위치하는지)를 지정할 수 있다. 예를 들어, 프로그래머는 코어스 그래인 어레이 모드에서 이용되는 변수는 공용 영역에 위치하는 것으로 선언하고, vliw 모드에서 이용되는 변수는 로컬/스택 영역에 위치하는 것으로 선언할 수 있다.
컴파일러(Compiler)는 선언된 위치에 대응하여, 전역 변수를 각 데이터 영역 별로 미리 설정된(Predetermined) 주소 영역으로 분리 배치할 수 있다.
따라서, 본 발명의 일측에 따른 코어스 그래인 어레이 모드에서 이용되는 변수는 공용 영역에 대응하여 설정된 제1 메모리 주소 영역에 배치될 수 있다. 또한, vliw 모드에서 이용되는 변수는 로컬/스택 영역에 대응하여 설정된 제2 메모리 주소 영역에 배치될 수 있다.
예를 들어, 로컬/스택 영역에 대응하여 1~100번지가 설정된 경우, 컴파일러는 로컬/스택 영역에 위치하는 것으로 선언된 전역 변수를 1~100 번지 중 어느 하나에 분리하여 배치할 수 있다. 또한, 공용 영역에 대응하여 101~200번지가 설정된 경우, 컴파일러는 공용 영역에 위치하는 것으로 선언된 전역 변수를 101~200 번지 중 어느 하나에 분리하여 배치할 수 있다.
이 때, 주소 디코딩부(220)는 코어(210)로부터 메모리 엑세스 요청(Request)이 발생하는 경우, 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 메모리 엑세스 요청이 공용 영역 및 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단한다.
예를 들어, 메모리 엑세스 요청에 대응하는 메모리 주소가 공용 영역에 대응하는 메모리 주소인 경우, 주소 디코딩부(220)는 메모리 엑세스 요청을 공용 영역에 대한 메모리 엑세스 요청으로 판단할 수 있다. 이 때, 코어(210)는 공용 영역을 포함하는 스크래치 패드 메모리(250)로 엑세스할 수 있다.
또한, 메모리 엑세스 요청에 대응하는 메모리 주소가 로컬/스택 영역에 대응하는 메모리 주소인 경우, 주소 디코딩부(220)는 메모리 엑세스 요청을 로컬/스택 영역에 대한 메모리 엑세스 요청으로 판단할 수 있다. 이 때, 코어(210)는 캐쉬 메모리(240)로 엑세스할 수 있다. 또한, 캐쉬 메모리(240)로의 엑세스에 대응하여 캐쉬 미스(Cache Miss)가 발생하는 경우, 코어(210)는 로컬/스택 영역을 포함하는 DRAM(270)으로 엑세스할 수 있다.
본 발명의 일측에 따르면, 프로세서(200)는 데이터 메모리 제어부(Data Memory Controller, DMC)(260)를 더 포함할 수 있다.
데이터 메모리 제어부(260)는 코어(210)의 메모리 엑세스(Memory Access)를 제어할 수 있다.
실시예에 따라서는, 코어(210)의 메모리 엑세스 요청이 공용 영역에 대한 메모리 엑세스 요청으로 판단되는 경우, 코어(210)는 데이터 메모리 제어부(260)를 통하여 스크래치 패드 메모리(250)로 엑세스할 수 있다.
또한, 코어(210)의 메모리 엑세스 요청이 로컬/스택 영역에 대한 메모리 엑세스 요청으로 판단되고, 코어(210)의 캐쉬 메모리(240)로의 엑세스에 대응하여 캐쉬 미스가 발생하는 경우, 코어(210)는 데이터 메모리 제어부(260)를 통하여 DRAM(270)으로 엑세스할 수 있다.
또한, 코어(210)로부터 외부 영역(External Section)에 대한 메모리 엑세스 요청이 발생하는 경우, 코어(210)는 데이터 메모리 제어부(260)를 통하여 외부 영역으로 메모리 엑세스할 수 있다.
본 발명의 일측에 따른 데이터 메모리 제어부(260)는 코어(210)에 연결될 수 있다. 또한, 일실시예에 따른 캐쉬 메모리(240)는 데이터 메모리 제어부(260) 및 주소 디코딩부(220) 각각에 연결될 수 있다.
도 3은 본 발명의 일실시예에 따른 프로세서의 동작 방법을 나타내는 흐름도이다.
본 발명의 일측에 따르면, 프로그래머(Programer)는 소프트웨어(Software)를 프로그래밍하는 경우, 전역 변수를 선언할 때, 전역 변수가 어느 데이터 영역에 위치하는지(즉, 로컬/스택 영역에 위치하는지 또는 공용 영역에 위치하는지)를 지정할 수 있다. 예를 들어, 프로그래머는 코어스 그래인 어레이 모드에서 이용되는 변수는 공용 영역에 위치하는 것으로 선언하고, vliw 모드에서 이용되는 변수는 로컬/스택 영역에 위치하는 것으로 선언할 수 있다.
컴파일러(Compiler)는 선언된 위치에 대응하여, 전역 변수를 각 데이터 영역 별로 미리 설정된(Predetermined) 주소 영역으로 분리 배치할 수 있다.
따라서, 본 발명의 일측에 따른 코어스 그래인 어레이 모드에서 이용되는 변수는 공용 영역에 대응하여 설정된 제1 메모리 주소 영역에 배치될 수 있다. 또한, vliw 모드에서 이용되는 변수는 로컬/스택 영역에 대응하여 설정된 제2 메모리 주소 영역에 배치될 수 있다.
예를 들어, 로컬/스택 영역에 대응하여 1~100번지가 설정된 경우, 컴파일러는 로컬/스택 영역에 위치하는 것으로 선언된 전역 변수를 1~100 번지 중 어느 하나에 분리하여 배치할 수 있다. 또한, 공용 영역에 대응하여 101~200번지가 설정된 경우, 컴파일러는 공용 영역에 위치하는 것으로 선언된 전역 변수를 101~200 번지 중 어느 하나에 분리하여 배치할 수 있다.
본 발명의 일실시예에 따른 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서의 동작 방법에 있어서, 프로세서의 코어는 메모리 엑세스 요청을 발생한다(310).
이 때, 본 발명의 일실시예에 따른 프로세서의 동작 방법은 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 메모리 엑세스 요청이 공용 영역 및 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단한다(320).
메모리 엑세스 요청에 대응하는 메모리 주소가 공용 영역에 대응하는 메모리 주소인 경우, 프로세서의 동작 방법은 메모리 엑세스 요청을 공용 영역에 대한 메모리 엑세스 요청으로 판단할 수 있다. 이 때, 프로세서의 동작 방법은 공용 영역을 포함하는 스크래치 패드 메모리로 엑세스할 수 있다(330)
일실시예에 따른 스크래치 패드 메모리는 코어스 그래인 어레이 모드에서 이용되는 변수가 저장되는 공용 영역(Shared Section)을 포함한다.
또한, 메모리 엑세스 요청에 대응하는 메모리 주소가 로컬/스택 영역에 대응하는 메모리 주소인 경우, 프로세서의 동작 방법은 메모리 엑세스 요청을 로컬/스택 영역에 대한 메모리 엑세스 요청으로 판단할 수 있다. 이 때, 프로세서의 동작 방법은 캐쉬 메모리로 엑세스할 수 있다(340).
캐쉬 메모리는 DRAM(Dynamic Random Access Memory)으로부터 vliw 모드에서 이용되는 변수를 캐슁(Caching)한다.
일실시예에 따른 DRAM은 vliw 모드에서 이용되는 변수가 저장되는 로컬/스택 영역(Local/Stack Section)을 포함할 수 있다. 이 때, 일실시예에 따른 DRAM은 프로세서의 동작 방법의 외부에 위치할 수 있다.
또한, 캐쉬 메모리로의 엑세스에 대응하여 캐쉬 미스(Cache Miss)가 발생하는 경우, 프로세서의 동작 방법은 로컬/스택 영역을 포함하는 DRAM으로 엑세스할 수 있다(350).
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 종래의 프로세서
200: 본 발명의 일실시예에 따른 프로세서

Claims (11)

  1. 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)에 있어서,
    코어(Core);
    상기 코어스 그래인 어레이 모드에서 이용되는 변수가 저장(Store)되는 공용 영역(Shared Section)을 포함하는 스크래치 패드 메모리(Scratch Pad Memory);
    상기 vliw 모드에서 이용되는 변수가 저장되는 로컬/스택 영역(Local/Stack Section)을 포함하는 DRAM(Dynamic Random Access Memory)으로부터 상기 vliw 모드에서 이용되는 변수를 캐슁(Caching)하는 캐쉬 메모리(Cache Memory); 및
    상기 코어로부터 메모리 엑세스 요청(Request)이 발생하는 경우, 상기 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 상기 메모리 엑세스 요청이 상기 공용 영역 및 상기 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단하는 주소 디코딩부(Address Decoding Unit)
    를 포함하고,
    상기 코어는
    상기 메모리 주소가 상기 공용 영역에 대응하는 경우, 상기 스크래치 패드 메모리로 엑세스하고, 상기 메모리 주소가 상기 로컬/스택 영역에 대응하는 경우, 상기 캐쉬 메모리로 엑세스하는 프로세서.
  2. 제1항에 있어서,
    상기 코어스 그래인 어레이 모드에서 이용되는 변수는
    상기 공용 영역에 대응하여 설정된 제1 메모리 주소 영역에 배치되고,
    상기 vliw 모드에서 이용되는 변수는
    상기 로컬/스택 영역에 대응하여 설정된 제2 메모리 주소 영역에 배치되는 프로세서.
  3. 제1항에 있어서,
    상기 코어의 메모리 엑세스를 제어하는 데이터 메모리 제어부(Data Memory Controller, DMC)
    를 더 포함하는 프로세서.
  4. 제3항에 있어서,
    상기 주소 디코딩부는
    상기 코어에 연결되고,
    상기 캐쉬 메모리는
    상기 데이터 메모리 제어부 및 상기 주소 디코딩부 각각에 연결된 프로세서.
  5. 제1항에 있어서,
    상기 코어는
    상기 캐쉬 메모리로의 엑세스에 대응하여 캐쉬 미스(Cache Miss)가 발생하는 경우, 상기 DRAM으로 엑세스하는 프로세서.
  6. 제1항에 있어서,
    상기 DRAM은
    상기 프로세서의 외부에 위치하는 프로세서.
  7. 코어스 그래인 어레이(Coarse-Grained Array) 모드 및 vliw(Very Long Instruction Word) 모드를 지원하는 프로세서(Processor)의 동작 방법에 있어서,
    메모리 엑세스 요청이 발생하는 경우, 상기 메모리 엑세스 요청에 대응하는 메모리 주소에 기반하여, 상기 메모리 엑세스 요청이 공용 영역 및 로컬/스택 영역 중 어느 영역에 대한 메모리 엑세스 요청인지를 판단하는 단계; 및
    상기 메모리 주소가 상기 공용 영역에 대응하는 경우, 스크래치 패드 메모리로 엑세스하고, 상기 메모리 주소가 상기 로컬/스택 영역에 대응하는 경우, 캐쉬 메모리로 엑세스하는 단계
    를 포함하고,
    상기 공용 영역은
    상기 코어스 그래인 어레이 모드에서 이용되는 변수를 저장(Store)하고,
    상기 로컬/스택 영역은
    상기 vliw 모드에서 이용되는 변수를 저장하는 프로세서의 동작 방법.
  8. 제7항에 있어서,
    상기 코어스 그래인 어레이 모드에서 이용되는 변수는
    상기 공용 영역에 대응하여 설정된 제1 메모리 주소 영역에 배치되고,
    상기 vliw 모드에서 이용되는 변수는
    상기 로컬/스택 영역에 대응하여 설정된 제2 메모리 주소 영역에 배치되는 프로세서의 동작 방법.
  9. 제7항에 있어서,
    상기 스크래치 패드 메모리는
    상기 공용 영역을 포함하고,
    상기 캐쉬 메모리는
    상기 로컬/스택 영역(Local/Stack Section)을 포함하는 DRAM(Dynamic Random Access Memory)으로부터 상기 vliw 모드에서 이용되는 변수를 캐슁(Caching)하는 프로세서의 동작 방법.
  10. 제9항에 있어서,
    상기 캐쉬 메모리로의 엑세스에 대응하여 캐쉬 미스(Cache Miss)가 발생하는 경우, 상기 DRAM으로 엑세스하는 단계
    를 더 포함하는 프로세서의 동작 방법.
  11. 제7항 내지 제10항 중 어느 한 항의 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020100093307A 2010-09-27 2010-09-27 프로세서 및 그 동작 방법 KR101687995B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100093307A KR101687995B1 (ko) 2010-09-27 2010-09-27 프로세서 및 그 동작 방법
US13/067,732 US8862825B2 (en) 2010-09-27 2011-06-22 Processor supporting coarse-grained array and VLIW modes
EP11179435.0A EP2434409B1 (en) 2010-09-27 2011-08-31 Processor and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100093307A KR101687995B1 (ko) 2010-09-27 2010-09-27 프로세서 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20120031744A true KR20120031744A (ko) 2012-04-04
KR101687995B1 KR101687995B1 (ko) 2016-12-20

Family

ID=44677578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100093307A KR101687995B1 (ko) 2010-09-27 2010-09-27 프로세서 및 그 동작 방법

Country Status (3)

Country Link
US (1) US8862825B2 (ko)
EP (1) EP2434409B1 (ko)
KR (1) KR101687995B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726864B2 (en) * 2020-03-17 2023-08-15 Renesas Electronics Corporation Data processing device and data processing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
KR20090046609A (ko) * 2007-11-06 2009-05-11 삼성전자주식회사 프로세서 및 메모리 제어 방법
KR20100048597A (ko) * 2008-10-31 2010-05-11 삼성전자주식회사 프로세서 및 메모리 제어 방법
KR20100077528A (ko) * 2008-12-29 2010-07-08 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565513B2 (en) 2007-02-28 2009-07-21 Advanced Micro Devices, Inc. Processor with power saving reconfigurable floating point unit decoding an instruction to single full bit operation or multiple reduced bit operations
DE212007000102U1 (de) 2007-09-11 2010-03-18 Core Logic, Inc. Rekonfigurierbarer Array-Prozessor für Gleitkomma-Operationen
US8276120B2 (en) 2007-10-30 2012-09-25 Coreworks, S.A. Reconfigurable coprocessor architecture template for nested loops and programming tool
KR101390974B1 (ko) 2008-01-30 2014-05-02 삼성전자주식회사 다중 모드를 제공하는 재구성 가능한 장치 및 방법
WO2009109395A2 (en) * 2008-03-07 2009-09-11 Interuniversitair Microelektronica Centrum (Imec) Method for determining a data format for processing data and device employing the same
KR100988893B1 (ko) 2009-02-16 2010-10-20 한국전력공사 345㎸ 2도체용 폴리머 상간스페이서
US20110131381A1 (en) * 2009-11-27 2011-06-02 Advanced Micro Devices, Inc. Cache scratch-pad and method therefor
KR101710116B1 (ko) * 2010-08-25 2017-02-24 삼성전자주식회사 프로세서, 메모리 관리 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
KR20090046609A (ko) * 2007-11-06 2009-05-11 삼성전자주식회사 프로세서 및 메모리 제어 방법
KR20100048597A (ko) * 2008-10-31 2010-05-11 삼성전자주식회사 프로세서 및 메모리 제어 방법
KR20100077528A (ko) * 2008-12-29 2010-07-08 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템

Also Published As

Publication number Publication date
US8862825B2 (en) 2014-10-14
KR101687995B1 (ko) 2016-12-20
EP2434409B1 (en) 2020-07-15
US20120079179A1 (en) 2012-03-29
EP2434409A1 (en) 2012-03-28

Similar Documents

Publication Publication Date Title
US8683125B2 (en) Tier identification (TID) for tiered memory characteristics
US8341357B2 (en) Pre-fetching for a sibling cache
US10621093B2 (en) Heterogeneous computing system configured to adaptively control cache coherency
US9058217B2 (en) Preferential CPU utilization for tasks
US20140359225A1 (en) Multi-core processor and multi-core processor system
US20030154349A1 (en) Program-directed cache prefetching for media processors
KR20120123127A (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
US9251048B2 (en) Memory page management
US20230169007A1 (en) Compression aware prefetch
US20160314078A1 (en) Memory management
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
KR20100005539A (ko) 캐시 메모리 시스템 및 캐시의 프리페칭 방법
KR101957855B1 (ko) 스크래치패드에 데이터 프리페치를 통해 gpu 메모리 접근 최적화를 위한 메모리 제어 장치 및 그 메모리 제어 방법
KR102451605B1 (ko) L1 데이터 캐시의 바이패스 방법 및 장치
US9001138B2 (en) 2-D gather instruction and a 2-D cache
KR20120031744A (ko) 프로세서 및 그 동작 방법
US10303610B2 (en) High-bandwidth prefetcher for high-bandwidth memory
US11176039B2 (en) Cache and method for managing cache
US8443174B2 (en) Processor and method of performing speculative load operations of the processor
US20130318307A1 (en) Memory mapped fetch-ahead control for data cache accesses
US20240004584A1 (en) DRAM Row Management for Processing in Memory
US9015423B2 (en) Reducing store operation busy times
Sumikawa et al. Global load instruction aggregation based on code motion
JP2005071351A (ja) プロセッサおよびプロセッサの動作方法
Teran et al. Flexible associativity for DRAM caches

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal