KR20150015577A - 프로세서 및 메모리 제어 방법 - Google Patents

프로세서 및 메모리 제어 방법 Download PDF

Info

Publication number
KR20150015577A
KR20150015577A KR1020130090273A KR20130090273A KR20150015577A KR 20150015577 A KR20150015577 A KR 20150015577A KR 1020130090273 A KR1020130090273 A KR 1020130090273A KR 20130090273 A KR20130090273 A KR 20130090273A KR 20150015577 A KR20150015577 A KR 20150015577A
Authority
KR
South Korea
Prior art keywords
memory
master
size
chip
area
Prior art date
Application number
KR1020130090273A
Other languages
English (en)
Other versions
KR102117511B1 (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 KR1020130090273A priority Critical patent/KR102117511B1/ko
Priority to EP14831581.5A priority patent/EP3029580B1/en
Priority to CN201480043500.1A priority patent/CN105453066B/zh
Priority to PCT/KR2014/007009 priority patent/WO2015016615A1/ko
Priority to US14/909,443 priority patent/US20160196206A1/en
Publication of KR20150015577A publication Critical patent/KR20150015577A/ko
Application granted granted Critical
Publication of KR102117511B1 publication Critical patent/KR102117511B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

본 발명은 프로세서 및 메모리에 관한 것이다. 더욱 상세하게는 여러 마스터 IP들(master IPs)이 접근 가능한 스위칭 가능한 온 칩 메모리(switchable on chip memory) 및 그 제어 방법에 관한 것으로, 본 발명의 일 실시예에 따른 온 칩 메모리의 메모리 제어 방법은, 각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하는 단계; 및 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하는 단계;를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 내장된(embedded) SoC 내의 다양한 마스터(master) IP들이 온 칩 버퍼와 온 칩 캐시의 장점을 모두 활용할 수 있다.

Description

프로세서 및 메모리 제어 방법{PROCESSOR AND METHOD FOR CONTROLING MEMORY}
본 발명은 프로세서 및 메모리에 관한 것이다. 더욱 상세하게는 여러 마스터 IP들(master IPs)이 접근 가능한 스위칭 가능한 온 칩 메모리(switchable on chip memory) 및 그 제어 방법에 관한 것이다.
최근 휴대폰, 태블릿(tablet) PC 등과 같은 모바일 제품에서 애플리케이션 프로세서(AP: Application Processor)가 널리 사용되고 있으며, 그 중 메모리 서브시스템(memory subsystem)의 중요성은 계속해서 증가하고 있다.
이와 같은 AP는 기존의 여러 가지 기능을 가진 복잡한 시스템을 하나의 시스템으로 구현하여 하나의 칩으로 구현한 시스템 온 칩(SoC: System on Chip)일 수 있다.
SoC의 현실화를 위해 많은 기술이 연구되고 있으며 특히 칩 내에 내재되어 있는 여러 지능 소자(IP: Intellectual Properties)들을 연결하는 방안이 매우 중요한 사항으로 대두되고 있다.
일반적으로 SoC는 시스템 전체를 제어하는 프로세서와 그 프로세서에 의해서 제어되는 다양한 IP로 구성된다. 여기서, IP라 함은 SoC에 집적될 수 있는 회로(circuit), 로직(logic), 또는 이들의 조합을 의미한다. 또한, 상기 회로 또는 상기 로직에는 코드(code)가 저장될 수 있다. 또한 상기 IP는 프로세서의 제어를 받기만 하는 슬레이브(slave) IP와 스스로 다른 슬레이브 IP에 데이터 통신을 요구할 수 있는 마스터(master) IP로 구분된다. 경우에 따라서는 하나의 IP가 슬레이브와 마스터 기능을 겸할 수도 있다.
예를 들면, IP는 CPU(Central Processing Unit), 상기 CPU에 포함된 복수의 코어들(cores) 각각, MFC(Multi-Format Codec), 비디오 모듈, 예컨대 카메라 인터페이스(camera interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(video processor), 또는 믹서(mixer), GPU 그래픽 처리 장치(GPU: Graphic(s) Processing Unit), 3D 그래픽 코어(graphic core), 오디오 시스템(audio system), 드라이버(driver), 디스플레이 드라이버 (display driver), DSP(Digital Signal Processor), 휘발성 메모리(volatile memory device), 비휘발성 메모리(non-volatile memory), 메모리 제어부(memory controller), 또는 캐시 메모리(cache memory) 등을 포함할 수 있다.
도 1은 SoC 설계에서 로직과 메모리의 면적 비중을 나타낸 그래프이다.
도 1을 참고하면, 로직과 메모리의 면적의 비중이 점차 증가하고 있는 것을 알 수 있다. 특히 내장된(embedded) SoC에서 메모리 서브시스템(subsystem)이 차지하는 면적은 2012년 최대 약 70%, 2014년 최대 약 94%까지 증가할 것으로 예상된다. 이러한 메모리 서브시스템은 SoC의 가격, 성능, 전력 소비에 많은 영향을 주는 요인으로, 내장된 SoC의 설계에서 이를 고려한 메모리 서브시스템의 설계 및 온 칩 메모리(on chip memory)의 설계가 요구된다.
본 발명은 전술한 필요성을 충족하기 위해 제안되는 것으로서, 내장된(embedded) SoC 내의 다양한 마스터(master) IP들이 온 칩 버퍼와 온 칩 캐시의 장점을 모두 활용할 수 있는 방법을 제공하는 것을 목적으로 한다.
또한, 여러 마스터 IP가 접근 가능한 스위칭 가능한 온 칩 메모리(Switchable On Chip Memory)를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해 본 발명의 일 실시예에 따른 온 칩 메모리의 메모리 제어 방법은, 각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하는 단계; 및 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하는 단계;를 포함할 수 있다.
또한, 상기 메모리 할당 정보를 설정하는 단계는, 마스터 IP의 집약성이 존재하는지 여부를 판단하는 단계; 마스터 IP의 집약성이 존재하는 경우, 엑세스 영역의 크기가 상기 온 칩 메모리의 메모리 영역의 크기보다 작은지 여부를 판단하는 단계; 상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 작은 경우, 마스터 IP 모드를 버퍼로 설정하는 단계; 및 상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 큰 경우, 마스터 IP 모드를 캐시로 설정하는 단계; 를 포함할 수 있다.
또한, 상기 메모리 할당 정보를 설정하는 단계는, 마스터 IP가 실시간 IP인 경우 높은 우선 순위를 설정하는 단계;를 포함할 수 있다.
또한, 상기 메모리 할당 정보를 설정하는 단계는, 상기 마스터 IP의 모드가 버퍼인 경우, 엑세스 영역의 크기에 따라 상기 필요한 메모리의 공간 크기를 설정하는 단계; 및 상기 마스터 IP의 모드가 캐시인 경우, 적중률이 미리 설정된 임계값과 동일하게 되는 지점을 상기 필요한 메모리 공간 크기로 설정하는 단계;를 포함할 수 있다.
또한, 상기 메모리 할당 정보를 설정하는 단계는, 상기 마스터 IP의 동작 시간 중 다른 마스터 IP가 동시에 동작하는 시간의 비율이 미리 설정된 임계값 이상인 경우 상기 상관관계가 높다고 설정하는 단계;를 포함할 수 있다.
또한, 상기 메모리를 할당하는 단계는, 우선순위가 가장 높은 마스터 IP를 선택하는 단계; 상기 선택된 마스터 IP와 이전에 선택된 마스터 IP들과의 상기 상관관계가 높은지 여부를 판단하는 단계; 및 상기 상관관계가 높지 않다고 판단된 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하는 단계;를 포함할 수 있다.
또한, 상기 메모리를 할당하는 단계는, 상기 상관관계가 높다고 판단된 경우, 상기 이전에 선택된 마스터 IP들에 할당된 메모리의 크기 및 상기 선택된 마스터 IP의 필요한 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰지 여부를 판단하는 단계; 상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 작은 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하는 단계; 및 상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰 경우, 상기 온 칩 메모리의 메모리 영역의 크기에서 상기 메모리 공간 크기의 합을 뺀 크기에 따라 메모리를 할당하는 단계;를 더 포함할 수 있다.
또한, 상기 상기 메모리 할당은 청크(chunk) 단위로 이루어질 수 있다.
또한, 상기 목적을 달성하기 위해 본 발명의 일 실시예에 따른 프로세서의 온 칩 메모리의 메모리 제어방법은, 각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하는 단계; 및 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하는 단계;를 포함할 수 있다.
또한, 상기 목적을 달성하기 위해 본 발명의 일 실시예에 따른 온 칩 메모리는, 메모리 공간; 및 각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하고, 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하도록 제어하는 제어부;를 포함할 수 있다.
또한, 상기 목적을 달성하기 위해 본 발명의 일 실시예에 따른 프로세서는, 적어도 하나의 마스터 IP(Intellectual Properties); 및 온 칩 메모리를 포함하고, 상기 온 칩 메모리는 메모리 공간; 및 상기 적어도 하나의 마스터 IP 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하고, 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하도록 제어하는 제어부;를 포함할 수 있다.
본 발명의 일 실시예에 따른 온 칩 메모리 및 이를 포함한 프로세서는, 내장된(embedded) SoC 내의 다양한 마스터(master) IP들이 온 칩 버퍼와 온 칩 캐시의 장점을 모두 활용할 수 있다.
또한, 여러 마스터 IP가 접근 가능한 스위칭 가능한 온 칩 메모리(Switchable On Chip Memory)를 제공할 수 있다.
또한, 마스터 IP의 사용 시나리오에 따라 메모리 영역을 버퍼 혹은 캐시로 설정 가능하고, 메모리 영역을 부분적으로 동적으로 할당 가능하며, 메모리를 청크 단위로 나누어 사용함으로써, 메모리의 일부는 버퍼로, 일부는 캐시로 나누어 동적으로 사용할 수 있다.
이에 따라 각 마스터 IP들이 사용하는 메모리 영역을 하나의 메모리로 설계 가능하여 실리콘 영역이 감소 가능해 SoC의 가격 경쟁력 확보가 가능할 수 있다.
또한 오프 칩 메모리(off chip memory) 대비 메모리 엑세스 레이턴시(memory access latency)가 작고, 오프 칩 메모리로 접근하는 트래픽(traffic) 양이 감소될 수 있다.
또한, 온 칩 메모리의 청크별 파워 게이트 적용 가능하고, 오프 칩 메모리 접근 감소로 인한 동적 전력 소비 절감도 가능할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 SoC 설계에서 로직과 메모리의 면적 비중을 나타낸 그래프이다.
도 2는 일반적인 SoC의 구성의 개략적인 블록 구성도이다.
도 3은 메모리 어드레스 공간 상에서 버퍼와 캐시 메모리의 차이를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 프로세서의 블록 구성도의 일 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 프로세서의 블록 구성도의 다른 예를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 마스터 IP 별 모드 설정 과정의 흐름도를 도시한 도면이다.
도 7은 엑세스 영역 별 트랜잭션(transaction) 양을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 두 마스터 IP들의 동작 시점 및 상관관계를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 마스터 IP들에 따른 메모리 할당 과정의 흐름도를 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 온 칩 메모리의 블록 구성도의 일 예를 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 마스터 IP 별 트랜잭션 정보와 온 칩 메모리의 SFR 정보를 도시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 온 칩 메모리의 SFR 할당 비트의 일 예를 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 온 칩 메모리의 초기 설정 과정의 흐름도를 도시한 도면이다.
도 14는 본 발명의 일 실시예에 따른 마스터 IP의 트랜잭션 분석 흐름도를 도시한 도면이다.
도 15는 본 발명의 일 실시예에 따른 캐시 메모리의 동적 할당 과정의 흐름도를 도시한 도면이다.
도 16은 본 발명의 일 실시예에 따른 캐시 메모리 동적 할당 정보의 일 예를 도시한 도면이다.
도 17 및 도 18은 본 발명의 일 실시예에 따른 캐시 메모리의 청크 별 전력 제어 방법의 흐름도를 도시한 도면이다.
도 19는 본 발명의 일 실시예에 따른 캐시 메모리의 전력 제어 정보의 일 예를 도시한 도면이다.
하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시 예를 설명하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2는 일반적인 SoC의 구성의 개략적인 블록 구성도이고, 도 3은 메모리 어드레스 공간 상에서 버퍼와 캐시 메모리의 차이를 나타낸 도면이다.
도 2를 참고하면, 일반적인 내장된 SoC(200)는 CPU 코어(210), 온 칩 메모리(on chip memory)(220: 223, 225)와 외부 메모리 인터페이스부(230)를 포함할 수 있다. 이때, 온 칩 메모리(220)는 프로세서 코어(210)와 외부 메모리(또는 오프 칩 메모리(off chip memory))(240) 사이에 위치해, 외부 메모리(240)보다 빠르게 동작할 수 있는 대신 크기가 외부 메모리(240)보다 작은 메모리이다. 이러한 온 칩 메모리(220)는 도 2에 도시된 바와 같이 버퍼(buffer)(223) 혹은 캐시(cache)(225)로 사용될 수 있다.
도 3을 참고하여 버퍼와 캐시의 메모리 어드레스 공간(memory address space) 상에서 차이점을 설명하면, 버퍼는 고정된 범위의 메모리 공간을 사용하여 고정된 메모리 엑세스 타임(memory access time)을 갖는다. 반면에 캐시는 캐시 메모리 크기(Cache Memory Size)보다 큰 메모리 공간을 커버할 수 있으며, 캐시 적중/부적중(Cache Hit/Miss)에 따라 메모리 엑세스 타임이 변할 수 있다.
온 칩 버퍼(On Chip Buffer)(또는 메모리)와 온 칩 캐시(On Chip Cache)는 하기 [표 1]과 같이 각각의 장단점이 존재한다. 즉, 온 칩 버퍼의 경우 SoC의 면적과 소비 전력이 적고, 메모리 엑세스 타임이 고정된 특징이 있다. 그러나, 온 칩 버퍼는 커버할 수 있는 어드레스 영역이 버퍼의 크기로 고정되어 온 칩 캐시에 비해 작고, 사용을 위해 소프트웨어의 지원이 필요해 사용의 편의성이 온 칩 캐시에 비해 떨어지는 편이다.
때문에, SoC 면적과 소비전력, 그리고 메모리 엑세스 타임 관점에서는 온 칩 버퍼를 사용하는 것이 바람직할 수 있다. 반면 커버할 수 있는 어드레스 영역과 동적 어드레스 범위 결정 그리고 사용의 편의성 면에서는 온 칩 캐시를 사용하는 것이 유리할 수 있다.
On Chip Buffer On Chip Cache
Silicon area Small Large
Power consumption Small Large
Access time Fixed Subject to compulsory, capacity, and conflict misses
Coverage (address region) Small (equal to the size of buffer) Large (larger than the size of cache)
Decision (address region) Static Dynamic (retrieving the missed data from main memory)
Usage Hard to use (S/W support is necessary for memory alloc) Easy to use
또한 내장된(Embedded) SoC 내의 마스터(master) IP별 요구사항(Buffer 혹은 Cache)이 다를 수 있다. 이를 모두 만족시키기 위해 각각의 Master IP마다 SoC 내에 버퍼 또는 캐시를 모두 구현하면 실리콘(Silicon) 면적 증가로 인한 SoC 가격이 상승하는 문제가 발생할 수 있다.
한편, 내장된 SoC 내의 다양한 마스터 IP들 이러한 온 칩 버퍼와 온 칩 캐시의 장점을 모두 활용할 수 있는 방법이 필요하다. 이 경우, 모든 마스터 IP들이 동시에 동작하는 빈도가 낮다는 점을 고려하면 하나의 온 칩 메모리(on chip memory) 공간을 버퍼와 캐시로 변경해 가면 사용할 수 있다. 그러므로, 본 발명에서는 여러 마스터 IP가 접근 가능한 스위칭 가능한 온 칩 메모리(Switchable on chip memory)를 제안한다.
도 4는 본 발명의 일 실시예에 따른 프로세서의 블록 구성도의 일 예를 도시한 도면이고, 도 5는 본 발명의 일 실시예에 따른 프로세서의 블록 구성도의 다른 예를 도시한 도면이다.
도 4를 참고하면, 본 발명의 일 실시예에 따른 프로세서(400)는 온 칩 메모리(450), 메모리 제어부(430), 마스터 IP들(411, 412, 413, 414, 415, 416, 417, 418), 버스(Bus)(420) 등을 포함할 수 있다. 이 경우, 상기 프로세서(400)는 애플리케이션 프로세서(AP: Application Processor)일 수 있다.
상기 프로세서(400)는 도시된 바와 같이, 시스템 온 칩(SoC: System on Chip)으로 다양한 마스터 IP들을 포함할 수 있다. 예를 들면, 상기 마스터 IP들은 중앙 처리 장치(CPU: Central Processing Unit)(411), 그래픽 처리 장치(GPU: Graphic(s) processing Unit)(412), MFC(Multi Format Codec)(413), DSP(Digital Signal Processor)(414), Display(415), Audio(416), eMMC(embedded Multi Media Card) 제어부(417), UFS(Universal Flash Storage) 제어부(418) 등을 포함할 수 있으며, 이에 한정되는 것은 아니다. 마스터 IP들 각각의 동작에 관한 구체적인 설명은 본 발명과 직접적인 연관이 없으므로 그 상세한 설명은 생략하기로 한다.
이때, 상기 온 칩 메모리(450)는 상기 여러 개의 마스터 IP들(411, 412, 413, 414, 415, 416, 417, 418)이 접근 가능하다. 또한, 상기 온 칩 메모리(450)는 마스터 IP들(411, 412, 413, 414, 415, 416, 417, 418)에 따라 버퍼와 캐시로 변경되어 사용될 수 있는 스위칭 가능한 온 칩 메모리일 수 있다. 이에 관한 구체적인 설명은 후술하기로 한다.
한편, 도 4에서는 하나의 온 칩 메모리(450)만이 도시되어 있으나, 실시예에 따라 다양한 형태의 프로세서의 구성이 가능하다. 예를 들면, 도 5의 (a)에 도시된 바와 같이, 복수 개의 온 칩 메모리(550, 555)들이 프로세서(500)에 포함될 수 있다. 또는 도 5의 (b)에 도시된 바와 같이, 하나의 온 칩 메모리(550)가 복수 개의 메모리 제어부(530, 535)들에 연결될 수도 있으며, 이에 한정되는 것은 아니다.
또한, 도 4에서는 온 칩 메모리(450)가 프로세서(400)에서 별도의 공간에 위치하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 예를 들면, 도시되지 않았지만, 온 칩 메모리(450)는 버스(420) 내 또는 메모리 제어부(430) 내 등 다양한 위치에 구현될 수 있다.
이상에서는 본 발명의 일 실시예에 따른 프로세서의 개략적인 구성에 대해서 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 동작에 대해서 살펴보도록 한다.
도 6은 본 발명의 일 실시예에 따른 마스터 IP 별 모드 설정 과정의 흐름도를 도시한 도면이고, 도 7은 엑세스 영역 별 트랜잭션(transaction) 양을 도시한 도면이다.
도 6을 참고하면, 610 단계에서 마스터 IP의 집약성(locality)이 존재하는지 여부를 판단한다. 이 경우, 집약성(locality)이란, 프로그램이 실행 도중 기억 장치를 참조하는 패턴이 기억 장치의 전 부분에 걸쳐 고루 나타나는 것이 아니라 어느 순간에는 일정한 한두 곳의 기억 장치 부분에 집중적으로 접근하는 성질을 의미한다. 즉, 기억 장소를 어느 한 순간에 특정 부분을 집중적으로 참고하는 것을 의미한다.
도 7을 참고하면, 특정 마스터 IP의 엑세스 영역 별 트랜잭션(transaction) 양을 나타낸 일 예이며, 트랜잭션 양이 미리 설정된 값보다 큰 경우 집약성이 존재하는 것으로 판단될 수 있다. 예를 들면, 트랜잭션 양이 600,000 바이트(byte)를 넘는 경우에 집약성이 존재하는 것으로 미리 설정될 수 있다.
610 단계에서 판단 결과 마스터 IP의 집약성이 존재하는 것으로 판단된 경우, 620 단계에서 마스터 IP의 메모리 엑세스 영역(access region)의 패턴을 분석하여 온 칩 메모리의 모드를 설정할 수 있다. 이때, 온 칩 메모리의 모드란, 온 칩 메모리를 버퍼로 할 것인지, 캐시로 할당할 것인지를 의미하는 것이다.
이 경우, 마스터 IP의 메모리 엑세스 영역의 크기가 메모리의 크기보다 큰 경우에는 630 단계에서 온 칩 메모리의 모드를 캐시로 설정할 수 있다. 엑세스 영역의 크기가 메모리의 크기보다 크다면, 메모리의 크기보다 큰 영역을 커버할 필요가 존재하는 IP이므로, 온 칩 메모리를 캐시로 사용하는 것이 유리하기 때문이다. 반면에, 마스터 IP의 메모리 엑세스 영역의 크기가 메모리의 크기보다 작은 경우에는 640 단계에서 온 칩 메모리의 모드를 버퍼로 설정할 수 있다.
한편, 하기 [표 2]는 마스터 IP 별 집약성과 엑세스 영역을 기준으로 온 칩 메모리의 모드를 설정한 일 예를 나타낸 것으로, 시스템 운영에 따라 이 값은 달라질 수 있음은 물론이다.
Master IP Locality Region Buffer or Cache
GPU Texture Region > Size Cache
MFC Line Buffer Region > Size Cache
DMA Page Cache Region > Size Cache
DSP Region < Size Buffer
Audio Region < Size Buffer
이상에서는 마스터 IP에 따른 온 칩 메모리의 모드를 설정하는 방법에 대해서 살펴보았다.
이하에서는 마스터 IP에 따른 우선순위 설정 과정에 대해서 살펴보도록 한다.
실시예에 따라, 마스터 IP 별로 온 칩 메모리의 할당 및 할당된 공간의 사용을 위해서 마스터 IP의 우선순위를 설정할 수 있다. 마스터 IP의 우선 순위를 설정함으로써, 우선순위가 높은 마스터 IP부터 메모리의 할당을 할 수 있다.
이때, 상기 마스터 IP의 우선순위 설정은 예를 들면, 실시간(real time) IP의 경우에 우선순위를 높게 설정할 수 있다. 가령, 그래픽 연산 처리의 경우 늦어지게 되면 디스플레이부에 디스플레이되는 화면의 깜빡임 또는 화면 전환의 지연 등이 발생하여 사용자에게 직접적인 불편을 일으킬 수 있으므로, GPU의 경우 실시간으로 처리되어야 할 실시간 IP일 수 있다. 그러나, 시스템의 운영에 따라서는 그래픽의 연산 처리가 중요하지 않은 경우에는 GPU는 비실시간 IP로 설정될 수도 있다.
또는 실시예에 따라 마스터 IP의 처리량(throughput)이 높을수록 우선순위를 높게 설정할 수 있다. 즉, 처리량이 높은 마스터 IP일수록 빠른 처리를 위하여 온 칩 메모리 영역을 사용하는 것이 전체 시스템의 처리 속도 측면에서 유리하므로, 처리량이 높은 마스터 IP의 우선순위를 높게 설정할 수 있다.
이와 같은 마스터 IP 별 우선순위 값은 시스템 운영에 따라 변경 가능하며, 우선순위를 설정하는 방법은 이에 한정되는 것은 아니다. 예를 들면, 마스터 IP 별 우선순위는 GPU>MFC>DMA>DSP>Audio와 같은 순서로 설정될 수 있다. 한편, 우선순위가 높을수록 우선순위 값을 작게 설정할 수 있다.
이상에서는 마스터 IP에 따른 우선순위 설정 과정에 대해서 살펴보았다.
이하에서는 마스터 IP 별로 필요한 메모리 공간 크기의 설정 과정에 대해서 살펴보도록 한다.
실시예에 따라, 마스터 IP 별로 필요한 메모리 공간의 크기(required size)를 설정할 수 있다. 예를 들면, 선택된 마스터 IP에 따른 온 칩 메모리의 모드가 버퍼 모드인 경우에는 엑세스 영역을 기준으로 결정할 수 있다. 즉, 엑세스 영역의 크기에 맞춰 필요한 메모리 공간의 크기를 설정할 수 있다.
또한 실시예에 따라, 마스터 IP에 따른 온 칩 메모리의 모드가 캐시 모드인 경우에는 적중률(hit ratio)의 변화를 기준으로 결정할 수 있다. 즉, 필요한 메모리 공간의 크기에 따른 적중률이 미리 설정된 임계값 이상이 되는 지점을 필요한 메모리 공간의 크기로 설정할 수 있다. 이때, 적중률은 명령과 프로그램의 실행에서 요구되는 데이터와 명령어를 읽어 오기 위해 해당 마스터 IP가 외부 메모리(오프 칩 메모리, off chip memory)에 접근해야 하는 전체 횟수에 대하여 온 칩 메모리의 접근으로 충족되는 횟수의 비율을 의미하는 것이다. 이 경우, 상기 미리 설정된 임계값을 크게 설정한 경우에는 해당 마스터 IP에서는 빠른 처리가 가능하지만 온 칩 메모리의 필요한 메모리 공간이 커질 수 있고, 너무 작게 설정한 경우에는 캐시 메모리로부터 해당 마스터 IP가 필요한 데이터와 명령어를 읽는 효율이 떨어질 수 있다. 이와 같이 적중률을 필요에 따라 미리 설정된 임계값 이상이 되도록 설정함으로써, 필요한 메모리 공간의 크기를 적절히 설정하여 효율적인 메모리 관리가 가능할 수 있다. 실시예에 따라 상기 미리 설정된 임계값은 사용자의 입력에 의해 변경할 수도 있다.
하기 [표 3]은 마스터 IP 별 필요한 메모리 공간의 크기의 일 예를 나타낸 것으로, 시스템 운영에 따라 이 값은 달라질 수 있음은 물론이다.
Master IP Required Size
GPU 4MB
MFC 2MB
DMA 3MB
DSP 1MB
Audio 4MB
이상에서는 마스터 IP 별로 필요한 메모리 공간 크기의 설정 과정에 대해서 살펴보았다.
이하에서는 마스터 IP들의 상관관계를 설정하는 과정에 대해서 살펴보도록 한다.
도 8은 본 발명의 일 실시예에 따른 두 마스터 IP들의 동작 시점 및 상관관계를 도시한 도면이다.
도 8을 참고하면, 서로 다른 마스터 IP들이 동작 시간 상 겹치는 영역이 존재할 수 있다. 즉, 하나의 마스터 IP(IP1)가 동작을 시작하여 그 동작이 종료하기 이전에 다른 마스터 IP(IP2)의 동작이 시작될 수 있다. 이와 같이 서로 다른 마스터 IP들의 동작 시간이 겹치는 경우에, 두 마스터 IP 간 상관관계가 존재한다고 할 수 있다. 이 경우, 서로 다른 두 마스터 IP들이 동시에 동작하는 시간이 긴 경우 상관관계 값이 높다고 할 수 있다.
예를 들면, 상관관계 값은 하기 [수학식 1]과 같이, 두 마스터 IP들의 전체 동작이 완료되는 시간 대비 두 마스터 IP들이 동시에 동작하는 시간의 비율에 따라 계산할 수 있으나, 이에 한정되는 것은 아니다. 예를 들면, 두 마스터 IP들이 동시에 동작하는 시간과 어느 하나의 마스터 IP의 동작 시간의 비율에 따라 계산할 수도 있다.
Figure pat00001
여기서, rIP1 , IP2는 두 개의 마스터 IP, IP1과 IP2 사이의 상관관계 값을 지시하며, B는 IP1과 IP2가 동작하는 전체 시간이고, A는 IP1과 IP2가 동시에 동작하는 시간을 지시하는 것이다.
이때, 상기 상관관계 값이 미리 설정된 임계값보다 큰 경우 상관관계가 높다고 판단할 수 있다. 실시예에 따라 상기 미리 설정된 임계값은 사용자의 입력에 의해 변경할 수도 있다.
하기 [표 4]는 마스터 IP들 사이의 상관관계의 일 예를 나타낸 것으로, 시스템 운영에 따라 이 관계는 달라질 수 있다.
GPU MFC DMA DSP Audio
GPU L L L L
MFC H L L
DMA L L
DSP L
Audio
이상에서는 마스터 IP들의 상관관계를 설정하는 과정에 대해서 살펴보았다.
이하에서는 마스터 IP들에 따라 메모리를 할당하는 과정에 대해서 살펴보도록 한다.
도 9는 본 발명의 일 실시예에 따른 마스터 IP들에 따른 메모리 할당 과정의 흐름도를 도시한 도면이다.
마스터 IP들에 따른 메모리 할당은 상술한 마스터 IP들의 우선순위, 필요한 메모리 공간의 크기, 다른 마스터 IP와의 상관관계에 따라 수행될 수 있다.
도 9를 참고하면, 910 단계에서 메모리 제어부는 우선순위가 가장 높은 마스터 IP를 선택할 수 있다. 예를 들면, 우선순위가 높을수록 우선순위 값을 작게 설정한 경우에 우선순위 값 i를 0으로 설정할 수 있다. 그리고, 920 단계에서 우선순위 값 i가 0인 마스터 IP를 찾아 선택할 수 있다. 즉, 우선순위가 높은 마스터 IP부터 메모리를 할당하도록 설정할 수 있다.
그 후 930 단계에서 현재 선택된 마스터 IP와 이전에 선택된 마스터 IP들 사이의 상관관계가 존재하는지 여부를 판단할 수 있다. 즉, 현재 선택된 마스터 IP 이전에 선택되어 메모리 할당된 마스터 IP가 존재하는 경우에, 이전에 할당된 IP들과 현재 선택된 IP 사이의 상관관계가 존재하는지 여부를 판단할 수 있다. 이때, 상술한 바와 같이 상기 상관관계 값이 미리 설정된 임계값보다 큰 경우에 상관관계가 높다고 판단될 수 있다. 상기 미리 설정된 임계값은 시스템 운영에 따라 다를 수 있고, 실시예에 따라 사용자가 임의의 값으로 입력할 수도 있다. 이 경우, 현재 선택된 마스터 IP와 이전에 선택된 마스터 IP들 사이에 상관관계가 낮다고 판단된 경우에 950 단계로 진행할 수 있다. 또한 실시예에 따라, 현재 선택된 마스터 IP 이전에 할당된 마스터 IP가 존재하지 않는 경우에는 상관관계가 없거나 낮은 것으로 판단하고 950 단계로 진행할 수 있다.
이와 같이 현재 선택된 마스터 IP와 이전에 선택된 마스터 IP들 사이에 상관관계가 낮다고 판단된 경우에 950 단계에서 메모리 제어부는 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기에 따라 메모리를 할당할 수 있다. 이때, 실시예에 따라 상기 할당되는 메모리의 크기는 청크(chunk) 단위로 이루어질 수 있다. 상기 청크 단위는 공정 또는 구현 방법에 따라 변경 가능하다.
한편, 930 단계에서 판단한 결과 현재 선택된 마스터 IP와 이전에 선택된 마스터 IP들 사이에 상관관계가 높다고 판단된 경우에는, 온 칩 메모리의 크기를 고려하여 할당이 이루어질 수 있다.
즉, 메모리 제어부는 940 단계에서 온 칩 메모리의 크기가 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기를 할당하기에 충분한지 여부를 판단할 수 있다. 이때 실시예에 따라, 940 단계에서 메모리 제어부는 하기 [수학식 2]에 따라 이전에 선택된 마스터 IP들에 할당된 메모리 공간의 크기와 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기의 합과, 온 칩 메모리의 크기와 비교할 수 있다.
Figure pat00002
여기서, i는 높은 상관관계 값을 갖는 IP들을 지시하는 것이며 Ai는 i에 따른 할당된 메모리의 크기를 지시하고, S는 온 칩 메모리의 전체 크기를 의미하는 것이다.
이와 같이, 현재 선택된 마스터 IP 이전에 선택된 마스터 IP에 할당된 메모리 크기의 합과 현재 선택된 마스터 IP가 필요한 메모리 크기의 합이, 온 칩 메모리 전체 크기보다 작은 경우에는 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기에 따라 메모리를 할당할 수 있다. 때문에 950 단계에서 메모리 제어부는 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기에 따라 메모리를 할당할 수 있다. 이때, 실시예에 따라 상기 할당되는 메모리의 크기는 청크(chunk) 단위로 이루어질 수 있다.
그러나, 현재 선택된 마스터 IP 이전에 선택된 마스터 IP에 할당된 메모리 크기의 합과 현재 선택된 마스터 IP가 필요한 메모리 크기의 합이, 온 칩 메모리 전체 크기보다 큰 경우에는 현재 선택된 마스터 IP가 필요한 메모리 공간의 크기에 따라 메모리를 할당할 수 없다. 때문에, 960 단계에서 메모리 제어부는 온 칩 메모리 크기에서 현재 할당된 메모리 크기를 뺀 만큼의 메모리 공간을 현재 선택된 마스터 IP에게 할당할 수 있다.
950 단계 또는 960 단계에 따라 메모리 할당이 이루어진 후에는, 970 단계에서 모든 IP들의 메모리 할당이 이루어졌는지 여부를 판단할 수 있다. 판단 결과 모든 IP들의 메모리 할당이 이루어지지 않은 경우에는 980 단계에서 우선순위 값 i를 1 증가시켜 다음 우선순위 값을 갖는 마스터 IP에 대한 메모리 할당 절차를 수행할 수 있다.
이와 같이 마스터 IP들 각각에 따라 온 칩 메모리를 청크 단위로 나누어 메모리의 일부는 버퍼로, 일부는 캐시로 나누어 동적으로 할당할 수 있다.
하기 [표 5]는 마스터 IP 별 메모리 할당을 수행한 일 예를 나타낸 것으로, 시스템 운영에 따라 이 값은 달라질 수 있음은 물론이다.
Master IP Priority Required Size Allocation Note
GPU 1 4MB 4MB
MFC 2 2MB 2MB
DMA 3 3MB 2MB rDMA , MFC = high
DSP 4 1MB 1MB
Audio 5 4MB 4MB rAudio , Others = low
한편, 도시되지 않았지만, 실시예에 따라 상기 마스터 IP 별 모드 설정, 우선순위 설정, 메모리 공간 크기의 설정 및 상관관계 설정 과정의 경우, 이에 대한 고려 순서와 조합은 다양한 형태로 변경 가능하다. 그리고, 그에 따라 메모리 할당 과정 역시 변경 가능함은 물론이다.
이상에서는 마스터 IP에 따라 메모리를 할당하는 과정에 대해서 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 구조에 대해서 살펴보도록 한다.
도 10은 본 발명의 일 실시예에 따른 온 칩 메모리의 블록 구성도의 일 예를 도시한 도면이다.
도 10을 참고하면, 본 발명의 일 실시예에 따른 온 칩 메모리(1000)는 특수 기능 레지스터(SFR: Special Function Register)(1010), 트랜잭션 디코더(Transaction Decoder)(1020), 버퍼/캐시 선택기(Buffer/Cache selector)(1030), 캐시 할당기(Cache allocator)(1040), 버퍼 제어부(Buffer Controller)(1050), 캐시 제어부(Cache Controller)(1060) 및 메모리 공간(1070) 등을 포함할 수 있다.
상기 SFR(1010)은 특수 기능 레지스터 영역으로, 프로세서의 다양한 기능들을 제어하고 모니터링할 수 있다. 프로세서의 구성(architecture)에 따라 I/O 및 주변 장치 제어부, 타이머, 스택 포인터(stack pointer), 스택 제한(stack limit), 프로그램 카운터(program counter), 서브루틴 리턴 주소(subroutine return address), 프로세서 상태(processor status), 상태 코드(condition codes) 등을 포함할 수 있으며 이에 제한되는 것은 아니다. 본 발명의 일 실시예에 따른 SFR(1010)의 경우, 각각의 마스터 IP들에 대한 온 칩 메모리의 메모리 할당 정보들이 포함될 수 있다. 이에 관한 구체적인 설명은 후술하도록 한다.
트랜잭션 디코더(1020)는 마스터 IP들로부터의 트랜잭션 정보(transaction information)를 분석하여 디코딩하는 역할을 수행하며, 메모리 공간(1070)는 온 칩 메모리(1000)에서 실제 사용되는 메모리의 공간이다.
버퍼/캐시 선택기(1030)는 상기 SFR(1010)의 설정에 따라 온 칩 메모리(1000)를 버퍼 또는 캐시로 설정하는 기능을 수행한다. 또한, 캐시 할당기(1040)는 메모리(1000)에서 캐시로 할당된 공간을 동적으로 할당하는 역할을 수행하며, 캐시 제어부(1060)는 캐시로 할당된 영역을 제어한다. 도 10에서는 상기 캐시 할당기(1040)와 캐시 제어부(1060)가 별도의 구성으로 도시되어 있으나, 실시예에 따라 상기 캐시 할당기(1040)와 캐시 제어부(1060)는 하나의 구성으로 이루어질 수도 있다. 그리고, 버퍼 제어부(1050)는 메모리(1000)에서 버퍼로 할당된 영역을 제어하는 기능을 수행한다. 도시되지 않았지만, 상기 버퍼 제어부(1050)와 캐시 제어부(1060)는 하나의 구성으로 이루어질 수도 있다.
도 11은 본 발명의 일 실시예에 따른 마스터 IP 별 트랜잭션 정보와 온 칩 메모리의 SFR 정보를 도시한 도면이고, 도 12는 본 발명의 일 실시예에 따른 온 칩 메모리의 SFR 할당 비트의 일 예를 도시한 도면이다.
도 11을 참고하면, 마스터 IP의 트랜잭션 정보(transaction information)(1110)는 해당 마스터 IP 식별 정보(1111)와 이네이블(enable) 정보(1113) 등을 포함할 수 있으나, 이에 한정하는 것은 아니다. 마스터 IP는 상기 트랜잭션 정보를 버스(Bus)(1140)를 통해 온 칩 메모리로 전달될 수 있다. 온 칩 메모리는 수신한 마스터 IP의 트랜잭션 정보를 트랜잭션 디코더에서 디코딩하여 메모리 제어부(1160)으로 전달한다. 상기 마스터 IP 식별 정보(1111)와 이네이블(enable) 정보(1113)는 각각의 상태를 나타내는 식별자(identification)일 수 있다.
한편, 온 칩 메모리의 SFR 정보(1150)는 마스터 IP 식별 정보(1151), 이네이블 정보(1152), 모드 정보(1153), 우선순위 정보(1154), 할당 정보(1155) 및 실제 메모리 사용 정보(1156) 등을 포함할 수 있으나, 이에 한정하는 것은 아니다. 마스터 IP 식별 정보(1151)는 마스터 IP의 트랜잭션 정보에 포함된 마스터 IP 식별 정보(1111)와 동일하게 설정되어야 한다. 그리고 이네이블 정보(1152)는 해당 마스터 IP에 대하여 할당된 메모리가 이네이블(enable) 되었는지 여부를 지시하는 것이다.
한편, SFR 정보(1150) 내의 할당 정보(1155)는 온 칩 메모리의 각각의 비트 별 메모리 청크의 할당 여부를 표시한다. 그리고, 실제 메모리 사용 정보(1156)는 해당 메모리 청크가 실제 사용되는지 여부를 표시하는 것이다. 예를 들면 도 12에 도시된 바와 같이 메모리 할당 정보(1255)는 메모리 청크 0과 1을 사용을 위해 할당하고 있음을 나타낼 수 있다.
모드 정보(1153)는 마스터 IP 식별 정보(1151)에 해당하는 IP에 대하여 설정된 모드가 버퍼인지 캐시인지 여부를 지시하는 것이며, 우선순위 정보(1154)는 해당 IP의 우선순위 정보를 포함한다.
이상에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 구조에 대해서 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 동작에 대해서 살펴보도록 한다.
도 13은 본 발명의 일 실시예에 따른 온 칩 메모리의 초기 설정 과정의 흐름도를 도시한 도면이다.
도 13을 참고하면, 마스터 IP의 트랜잭션 정보를 설정하고, 이에 해당하는 온 칩 메모리의 SFR 정보를 설정한 후에 온 칩 메모리를 사용할 수 있다.
이를 위하여 먼저, 1310 단계에서 마스터 IP의 트랜잭션을 디스에이블(disable) 시킬 수 있다. 그 후 1320 단계에서 온 칩 메모리의 해당 마스터 IP에 해당하는 SFR을 디스에이블 시킬 수 있다.
그 후 1330 단계에서 온 칩 메모리의 SFR에 모드 정보, 우선순위 정보, 할당 정보 및 실제 메모리 사용 정보 등을 설정할 수 있다. 그리고 1340 단계에서 온 칩 메모리의 SFR 정보를 이네이블(enable) 시키고, 1350 단계에서 해당 마스터 IP 트랜잭션을 이네이블 시킨다. 그 후 1360 단계에서 해당 마스터 IP를 실행할 수 있다.
도 14는 본 발명의 일 실시예에 따른 마스터 IP의 트랜잭션 분석 흐름도를 도시한 도면이다.
도 14를 참고하면, 트랜잭션 정보의 인에이블 설정과, SFR 정보의 인에이블 설정 및 모드 설정에 따라 해당 마스터 IP의 트랜잭션은 버퍼 또는 캐시로 전달되거나 오프 칩 메모리(off chip memory) 제어부로 바이패스(bypass)될 수 있다.
구체적으로, 1410 단계에서 마스터 IP 트랜잭션 정보의 이네이블 정보가 이네이블 되어있는지 여부를 판단할 수 있다. 판단 결과 마스터 IP 트랜잭션 정보가 이네이블 되었다면, 1420 단계에서 SFR 정보 내의 IP 이네이블 정보가 이네이블 되었는지 여부를 판단할 수 있다.
만약, 마스터 IP 트랜잭션 정보 내의 이네이블 정보가 디스에이블 되어있거나, SFR 정보 내의 IP 이네이블 정보가 디스에이블 되어있는 경우에는 1430 단계에서 해당 마스터 IP 트랜잭션을 오프 칩 메모리 제어부로 전달할 수 있다. 즉, 마스터 IP 트랜잭션 정보를 온 칩 메모리로 보내지 않고 오프 칩 메모리 제어부로 바이패스할 수 있다.
1420 단계에서 판단 결과 SFR 정보 내의 IP 이네이블 정보가 이네이블 되어 있는 경우, 1440 단계에서 SFR 정보 내의 모드 정보가 버퍼인지, 캐시인지 여부를 판단할 수 있다. 판단 결과 SFR 모드가 버퍼인 경우, 1450 단계에서 마스터 IP 트랜잭션을 온 칩 메모리 내의 버퍼 제어부로 전달할 수 있다. 또한 SFR 모드가 캐시인 경우, 1460 단계에서 마스터 IP 트랜잭션을 온 칩 메모리 내의 캐시 제어부로 전달할 수 있다. 또는 실시예에 따라 온 칩 메모리 내의 하나의 제어부에서 상기 SFR 정보 내의 모드 정보에 따른 처리를 수행하도록 할 수도 있다.
이상에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 동작에 대해서 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 모드 변환에 대해서 살펴보도록 한다.
본 발명의 일 실시예에 따른 스위칭 가능한 온 칩 메모리는 버퍼 또는 캐시로 할당되어 사용 중이던 메모리 영역이 디스에이블 되거나, 우선순위가 높은 다른 마스터 IP에 의해 할당 중이던 메모리 영역의 모드가 변경될 수 있다.
이 때, 온 칩 메모리가 버퍼로 할당되어 사용 중 버퍼가 디스에이블되거나, 캐시 모드로 변경되는 경우, 온 칩 메모리 내의 버퍼 제어부는 사용 중이던 청크 영역을 오프 칩 메모리로 복사를 수행할 수 있다.
또한, 온 칩 메모리가 캐시로 할당되어 사용 중 캐시가 디스에이블되거나, 버퍼 모드로 변경되는 경우, 온 칩 메모리 내의 캐시 제어부는 사용 중이던 청크 영역에 대하여 제거 및 무효화(clean and invalidate)를 수행할 수 있다.
이상에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 모드 변환에 대해서 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 프로세서에 포함된 스위칭 가능한 온 칩 메모리의 캐시 운용 방법 대해서 살펴보도록 한다.
도 15는 본 발명의 일 실시예에 따른 캐시 메모리의 동적 할당 과정의 흐름도를 도시한 도면이고, 도 16은 본 발명의 일 실시예에 따른 캐시 메모리 동적 할당 정보의 일 예를 도시한 도면이다.
도 15를 참고하면, 본 발명의 일 실시예에 따른 스위칭 가능한 온 칩 메모리에서, 캐시 메모리의 동적 할당은 청크(또는 Way) 단위로 이루어질 수 있다. 이 때, 캐시 메모리의 청크 별 프리 인디케이터(free indicator)와 메모리 제어부의 비지 인디케이터(busy indicator)를 기준으로 캐시 메모리의 동적 할당이 이루어질 수 있다.
상기 프리 인디케이터는 캐시 메모리의 라인 별 상태 비트(status bits) 등을 통해 확인할 수 있는 것으로, 할당된 캐시 메모리 중 사용되지 않는 영역이 존재하는지 여부를 지시하는 지시자이다. 예를 들면, 프리 인디케이터는 캐시 메모리에서 실제 사용되지 않는 영역이 존재하는 경우 1(free), 실제 사용되는 영역이 존재하지 않는 경우 0(full)과 같은 1비트의 지시자일 수 있으나, 이에 한정되는 것은 아니다. 즉, 실제 사용되지 않는 영역이 존재하는 경우와 실제 사용되는 영역이 존재하지 않는 경우를 구별할 수 있는 다른 방법도 사용될 수 있다.
그리고 상기 비지 인디케이터는 온 칩 메모리의 사용량(usage)이 미리 설정된 임계값 이상인지 여부를 지시하는 지시자이다. 이때, 미리 설정된 임계값은 사용자의 입력에 따라 변경될 수도 있다. 예를 들면, 비지 인디케이터는 메모리의 사용량이 미리 설정된 임계값 이상인 경우에 1(busy)를, 미리 설정된 임계값 미만인 경우에는 0(idle)과 같은 1비트 지시자일 수 있다.
구체적으로 1510 단계에서 메모리 제어부의 비지 인디케이터가 1(busy), 즉 메모리의 사용량이 미리 설정된 임계값 이상인지 여부를 판단할 수 있다. 다시말해, 메모리의 사용량이 많아 캐시 메모리의 동적인 할당이 필요한지 여부를 판단할 수 있다.
판단 결과 비지 인디케이터가 1(busy)인 경우, 1520 단계에서 이네이블 된 IP들의 모든 프리 인디케이터가 0(full), 즉 할당된 캐시 메모리 중 사용되지 않는 영역이 존재하는지 여부를 판단할 수 있다.
판단 결과 모든 IP의 메모리가 사용되고 있는 경우에, 그 후 1530 단계에서 이네이블 된 IP들 중 프리 인디케이터가 1(free), 즉 할당은 되었으나 사용되지 않고 있는 메모리 영역이 있는 IP가 존재하는지 여부를 판단할 수 있다.
판단 결과 사용되지 않는 메모리 영역이 할당되어 있는 IP가 존재하는 경우, 1540 단계에서 사용되지 않는 메모리 영역이 존재하는 프리(free) IP에 대해서 사용되지 않는 메모리 영역을 제외하도록 프리 IP의 실제 메모리 사용 영역을 변경하도록 할 수 있다.
그 후 1550 단계에서 할당된 모든 메모리가 사용 중인 풀(full) IP에 대하여 실제 메모리 사용 정보에 상기 프리 IP에서 사용되지 않는 메모리 영역을 포함하도록 변경할 수 있다.
도 16을 참고하면, 마스터 IP들 중 MFC와 DMA에 대하여 캐시 모드가 설정되어, 캐시 메모리가 각각 할당되어 있다. 이 때, 메모리 제어부의 비지 인디케이터가 1(busy)이고, DMA의 프리 인디케이터가 0(full)이지만, MFC의 프리 인디케이터는 1(free)인 경우, 도시된 바와 같이, DMA와 MFC의 실제 메모리 사용 정보는 변경될 수 있다. 즉, MFC에 할당된 메모리 영역 중 사용되지 않는 메모리 영역은 DMA가 사용하도록 MFC가 실제 사용하는 메모리 영역을 감소시키고, 감소된 영역을 DMA가 실제 사용하는 메모리 영역에 추가되도록 실제 메모리 사용 정보가 변경될 수 있다.
도 17 및 도 18은 본 발명의 일 실시예에 따른 캐시 메모리의 청크 별 전력 제어 방법의 흐름도를 도시한 도면이고, 도 19는 본 발명의 일 실시예에 따른 캐시 메모리의 전력 제어 정보의 일 예를 도시한 도면이다.
도 17 및 도 18을 참고하면, 본 발명의 일 실시예에 따른 스위칭 가능한 온 칩 메모리에서, 캐시 메모리의 전력 제어는 청크 단위로 이루어질 수 있다. 이 때, 상술한 캐시 메모리의 청크 별 프리 인디케이터와 메모리 제어부의 비지 인디케이트를 기준으로 청크 별 전력을 제어할 수 있다.
도 17을 참고하여 메모리의 사용되지 않는 청크 영역의 전력을 오프(power off)하는 방법을 설명하면, 1710 단계에서 메모리 제어부의 비지 인디케이터가 0(idel), 즉 메모리의 사용량이 미리 설정된 임계값 미만인지 여부를 판단할 수 있다.
판단 결과 메모리 사용량이 임계값 미만인 경우, 1720 단계에서 이네이블된 IP들 중 프리 인디케이터가 1(free), 즉 할당된 캐시 메모리 중 사용되지 않는 영역이 존재하는지 여부를 판단할 수 있다.
상기 1720 단계에서 판단결과 사용되지 않는 메모리 영역이 존재하는 경우, 1730 단계에서 상기 IP에 대해서 사용되지 않는 메모리 영역을 실제 메모리 사용 정보에서 제외하도록 설정할 수 있다.
그 후 제어부는 사용되지 않는 메모리의 청크 영역에 대하여 전력을 오프(power off)할 수 있다.
한편, 도 18을 참고하여 메모리의 전력이 오프된 청크 영역의 전력을 온(power on)하는 방법을 설명하면, 1810 단계에서 메모리 제어부의 비지 인디케이터가 1(busy), 즉 메모리의 사용량이 미리 설정된 임계값 이상인지 여부를 판단할 수 있다.
판단 결과 메모리 사용량이 임계값 이상인 경우, 1820 단계에서 전력 오프된 영역이 존재하는지 여부를 판단할 수 있다.
전력 오프된 영역이 존재하는 경우, 1830 단계에서 이네이블된 IP들 모두 프리 인디케이터가 0(full), 즉 할당된 캐시 메모리 중 사용되지 않는 영역이 존재하지 않는지 여부와 함께, 할당된 영역보다 실제 사용되는 메모리 영역이 작은 IP가 존재하는지 여부를 판단할 수 있다.
그 후 1840 단계에서 전력이 오프된 청크 영역의 전력을 온(power on)하고, 1850 단계에서 전력 온 된 청크는 사용 영역에 추가되어 실제 메모리 사용 영역이 메모리 할당 영역과 동일하게 되도록 설정될 수 있다.
도 19를 참고하면, 마스터 IP들 중 MFC와 DMA에 대하여 캐시 모드가 설정되어, 캐시 메모리가 각각 할당되어 있다. 이 때, 메모리 제어부의 비지 인디케이터가 0(idle)이고, MFC의 프리 인디케이터는 1(free)인 경우, 도시된 바와 같이, MFC의 실제 메모리 사용 정보는 변경되고, 변경된 영역 중 사용되지 않는 영역의 전력은 오프될 수 있다. 즉, MFC에 할당된 메모리 영역 중 사용되지 않는 메모리 영역의 전력을 오프하도록 실제 메모리 사용 정보가 변경될 수 있다.
그 후, 메모리 제어부의 비지 인디케이터가 1(busy)이고, MFC의 프리 인디케이터는 0(full)인 경우, 도시된 바와 같이, MFC의 실제 메모리 사용 정보는 변경되고, 변경된 영역의 전력은 온될 수 있다. 즉, MFC에 할당된 메모리 영역 중 사용되지 않는 메모리 영역의 전력이 오프되어 MFC에 할당된 메모리 영역과 실제 사용되는 영역이 다르게 설정되어 있을 수 있다. 그 후, MFC에 할당되었으나 사용되지 않고 있던 메모리 영역의 전력이 온 되면, 전력이 새롭게 공급된 메모리 영역은 다시 실제 메모리 사용 영역에 포함될 수 있다.
상술한 바와 같이, 본 발명의 일 실시예에 따른 온 칩 메모리는, 마스터 IP 별 사용 시나리오에 따라 메모리 영역을 버퍼 또는 캐시로 설정 가능하고, 메모리 영역을 부분적으로 동적으로 할당 가능하다. 또한, 마스터 IP의 모드(버퍼 또는 캐시), 우선순위, 필요한 메모리 공간의 크기, 상관관계 등에 따라 마스터 IP에 따라 메모리 할당이 가능하다.
그리고, 본 발명의 일 실시예에 따른 온 칩 메모리는 동적으로 버퍼 또는 캐시로 사용할 수 있고, 메모리를 청크 단위로 나누어 사용함으로써, 메모리의 일부는 버퍼로, 일부는 캐시로 나누어 동적으로 사용할 수 있다.
또한, 캐시 모드의 마스터 IP들의 경우 캐시 메모리의 동적 할당이 가능하고, 캐시 메모리의 전력을 제어함으로써 소비 전력도 감소될 수 있다.
본 명세서와 도면에 개시 된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
400: 프로세서 450: 온 칩 메모리
490: 오프 칩 메모리
411, 412, 413, 414, 415, 416, 417, 418: 마스터 IP
1000: 온 칩 메모리 1010: SFR
1020: 트랜잭션 디코더 1030: 버퍼/캐시 선택기
1040: 캐시 할당기 1050: 버퍼 제어부
1060: 캐시 제어부 1070: 메모리 공간

Claims (20)

  1. 온 칩 메모리의 메모리 제어 방법에 있어서,
    각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하는 단계; 및
    상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하는 단계;
    를 포함하는 온 칩 메모리의 메모리 제어 방법.
  2. 제1 항에 있어서, 상기 메모리 할당 정보를 설정하는 단계는,
    마스터 IP의 집약성이 존재하는지 여부를 판단하는 단계;
    마스터 IP의 집약성이 존재하는 경우, 엑세스 영역의 크기가 상기 온 칩 메모리의 메모리 영역의 크기보다 작은지 여부를 판단하는 단계;
    상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 작은 경우, 마스터 IP 모드를 버퍼로 설정하는 단계; 및
    상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 큰 경우, 마스터 IP 모드를 캐시로 설정하는 단계;
    를 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  3. 제1 항에 있어서, 상기 메모리 할당 정보를 설정하는 단계는,
    마스터 IP가 실시간 IP인 경우 높은 우선 순위를 설정하는 단계;
    를 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  4. 제1 항에 있어서, 상기 메모리 할당 정보를 설정하는 단계는,
    상기 마스터 IP의 모드가 버퍼인 경우, 엑세스 영역의 크기에 따라 상기 필요한 메모리의 공간 크기를 설정하는 단계; 및
    상기 마스터 IP의 모드가 캐시인 경우, 적중률이 미리 설정된 임계값과 동일하게 되는 지점을 상기 필요한 메모리 공간 크기로 설정하는 단계;
    를 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  5. 제1 항에 있어서, 상기 메모리 할당 정보를 설정하는 단계는,
    상기 마스터 IP의 동작 시간 중 다른 마스터 IP가 동시에 동작하는 시간의 비율이 미리 설정된 임계값 이상인 경우 상기 상관관계가 높다고 설정하는 단계;
    를 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  6. 제1 항에 있어서, 상기 메모리를 할당하는 단계는,
    우선순위가 가장 높은 마스터 IP를 선택하는 단계;
    상기 선택된 마스터 IP와 이전에 선택된 마스터 IP들과의 상기 상관관계가 높은지 여부를 판단하는 단계; 및
    상기 상관관계가 높지 않다고 판단된 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하는 단계;
    를 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  7. 제6 항에 있어서, 상기 메모리를 할당하는 단계는,
    상기 상관관계가 높다고 판단된 경우, 상기 이전에 선택된 마스터 IP들에 할당된 메모리의 크기 및 상기 선택된 마스터 IP의 필요한 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰지 여부를 판단하는 단계;
    상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 작은 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하는 단계; 및
    상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰 경우, 상기 온 칩 메모리의 메모리 영역의 크기에서 상기 메모리 공간 크기의 합을 뺀 크기에 따라 메모리를 할당하는 단계;
    를 더 포함하는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  8. 제1 항에 있어서,
    상기 메모리 할당은 청크(chunk) 단위로 이루어지는 것을 특징으로 하는 온 칩 메모리의 메모리 제어 방법.
  9. 프로세서의 온 칩 메모리의 메모리 제어방법에 있어서,
    각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하는 단계; 및
    상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하는 단계;
    를 포함하는 프로세서의 온 칩 메모리의 메모리 제어 방법.
  10. 제9 항에 있어서,
    상기 메모리 할당은 청크(chunk) 단위로 이루어지는 것을 특징으로 하는 프로세서의 온 칩 메모리의 메모리 제어 방법.
  11. 온 칩 메모리에 있어서,
    메모리 공간; 및
    각각의 마스터 IP(Intellectual Properties) 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하고, 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하도록 제어하는 제어부;
    를 포함하는 온 칩 메모리.
  12. 제11 항에 있어서, 상기 제어부는,
    마스터 IP의 집약성이 존재하는지 여부를 판단하고, 마스터 IP의 집약성이 존재하는 경우, 엑세스 영역의 크기가 상기 온 칩 메모리의 메모리 영역의 크기보다 작은지 여부를 판단하고, 상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 작은 경우, 마스터 IP 모드를 버퍼로 설정하고, 상기 엑세스 영역의 크기가 상기 온 칩 메모리의 상기 메모리 영역의 크기보다 큰 경우, 마스터 IP 모드를 캐시로 설정하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  13. 제11 항에 있어서, 상기 제어부는,
    마스터 IP가 실시간 IP인 경우 높은 우선 순위를 설정하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  14. 제11 항에 있어서, 상기 제어부는,
    상기 마스터 IP의 모드가 버퍼인 경우, 엑세스 영역의 크기에 따라 상기 필요한 메모리의 공간 크기를 설정하고, 상기 마스터 IP의 모드가 캐시인 경우, 적중률이 미리 설정된 임계값과 동일하게 되는 지점을 상기 필요한 메모리 공간 크기로 설정하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  15. 제11 항에 있어서, 상기 제어부는,
    상기 마스터 IP의 동작 시간 중 다른 마스터 IP가 동시에 동작하는 시간의 비율이 미리 설정된 임계값 이상인 경우 상기 상관관계가 높다고 설정하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  16. 제11 항에 있어서, 상기 제어부는,
    우선순위가 가장 높은 마스터 IP를 선택하고, 상기 선택된 마스터 IP와 이전에 선택된 마스터 IP들과의 상기 상관관계가 높은지 여부를 판단하고, 상기 상관관계가 높지 않다고 판단된 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  17. 제16 항에 있어서, 상기 제어부는,
    상기 상관관계가 높다고 판단된 경우, 상기 이전에 선택된 마스터 IP들에 할당된 메모리의 크기 및 상기 선택된 마스터 IP의 필요한 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰지 여부를 판단하고, 상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 작은 경우, 상기 필요한 메모리 공간 크기에 따라 메모리를 할당하고, 상기 메모리 공간 크기의 합이 상기 온 칩 메모리의 메모리 영역의 크기보다 큰 경우, 상기 온 칩 메모리의 메모리 영역의 크기에서 상기 메모리 공간 크기의 합을 뺀 크기에 따라 메모리를 할당하도록 제어하는 것을 특징으로 하는 온 칩 메모리.
  18. 제11 항에 있어서,
    상기 메모리 할당은 청크(chunk) 단위로 이루어지는 것을 특징으로 하는 온 칩 메모리.
  19. 프로세서에 있어서,
    적어도 하나의 마스터 IP(Intellectual Properties); 및
    온 칩 메모리를 포함하고,
    상기 온 칩 메모리는
    메모리 공간; 및
    상기 적어도 하나의 마스터 IP 별 모드, 우선순위, 필요한 메모리의 공간 크기 및 다른 마스터 IP와의 상관관계 중 적어도 하나를 포함하는 메모리 할당 정보를 설정하고, 상기 메모리 할당 정보를 이용하여 상기 각각의 마스터 IP 별 메모리를 할당하도록 제어하는 제어부;
    를 포함하는 프로세서.
  20. 제19 항에 있어서,
    상기 메모리 할당은 청크(chunk) 단위로 이루어지는 것을 특징으로 하는 프로세서.
KR1020130090273A 2013-07-30 2013-07-30 프로세서 및 메모리 제어 방법 KR102117511B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130090273A KR102117511B1 (ko) 2013-07-30 2013-07-30 프로세서 및 메모리 제어 방법
EP14831581.5A EP3029580B1 (en) 2013-07-30 2014-07-30 Processor and memory control method
CN201480043500.1A CN105453066B (zh) 2013-07-30 2014-07-30 处理器和存储器控制方法
PCT/KR2014/007009 WO2015016615A1 (ko) 2013-07-30 2014-07-30 프로세서 및 메모리 제어 방법
US14/909,443 US20160196206A1 (en) 2013-07-30 2014-07-30 Processor and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130090273A KR102117511B1 (ko) 2013-07-30 2013-07-30 프로세서 및 메모리 제어 방법

Publications (2)

Publication Number Publication Date
KR20150015577A true KR20150015577A (ko) 2015-02-11
KR102117511B1 KR102117511B1 (ko) 2020-06-02

Family

ID=52432074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130090273A KR102117511B1 (ko) 2013-07-30 2013-07-30 프로세서 및 메모리 제어 방법

Country Status (5)

Country Link
US (1) US20160196206A1 (ko)
EP (1) EP3029580B1 (ko)
KR (1) KR102117511B1 (ko)
CN (1) CN105453066B (ko)
WO (1) WO2015016615A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087900A (ko) * 2014-11-25 2017-07-31 알리바바 그룹 홀딩 리미티드 메모리 관리 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6464980B2 (ja) * 2015-10-05 2019-02-06 富士通株式会社 プログラム、情報処理装置及び情報処理方法
KR20190123544A (ko) * 2018-04-24 2019-11-01 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN111104062B (zh) * 2019-11-22 2023-05-02 中科寒武纪科技股份有限公司 存储管理方法、装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233659B1 (en) * 1998-03-05 2001-05-15 Micron Technology, Inc. Multi-port memory device with multiple modes of operation and improved expansion characteristics
US20100235579A1 (en) * 2006-02-22 2010-09-16 Stuart David Biles Cache Management Within A Data Processing Apparatus
KR20120068630A (ko) * 2010-12-17 2012-06-27 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
KR20120072211A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 메모리 매핑장치 및 이를 구비한 멀티프로세서 시스템온칩 플랫폼
KR102002900B1 (ko) * 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947319A (en) * 1988-09-15 1990-08-07 International Business Machines Corporation Arbitral dynamic cache using processor storage
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information
ATE128777T1 (de) * 1991-03-28 1995-10-15 Cray Research Inc Echtzeit-input/output-methode fuer ein vektor- prozessor-system.
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US6122708A (en) * 1997-08-15 2000-09-19 Hewlett-Packard Company Data cache for use with streaming data
US6321318B1 (en) * 1997-12-31 2001-11-20 Texas Instruments Incorporated User-configurable on-chip program memory system
US6219745B1 (en) * 1998-04-15 2001-04-17 Advanced Micro Devices, Inc. System and method for entering a stream read buffer mode to store non-cacheable or block data
US6629187B1 (en) * 2000-02-18 2003-09-30 Texas Instruments Incorporated Cache memory controlled by system address properties
US6646646B2 (en) * 2000-12-13 2003-11-11 Micron Technology, Inc. Memory system having programmable multiple and continuous memory regions and method of use thereof
US20040139238A1 (en) * 2000-12-27 2004-07-15 Luhrs Peter A. Programmable switching system
JP2003132347A (ja) * 2001-10-26 2003-05-09 Sony Corp 画像処理装置
US7167952B2 (en) * 2003-09-17 2007-01-23 International Business Machines Corporation Method and system for performing a memory-mode write to cache
CN100432957C (zh) * 2005-02-12 2008-11-12 美国博通公司 一种管理存储器的方法
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7647452B1 (en) * 2005-11-15 2010-01-12 Sun Microsystems, Inc. Re-fetching cache memory enabling low-power modes
KR101334176B1 (ko) * 2007-01-19 2013-11-28 삼성전자주식회사 멀티 프로세서 시스템 온 칩에서의 메모리 관리 방법
US8132173B2 (en) * 2007-09-28 2012-03-06 Oracle America, Inc. Method and system for coordinating hypervisor scheduling
KR101383793B1 (ko) * 2008-01-04 2014-04-09 삼성전자주식회사 시스템 온 칩에서 메모리 할당 방법 및 장치
US20100169519A1 (en) * 2008-12-30 2010-07-01 Yong Zhang Reconfigurable buffer manager
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
KR101039782B1 (ko) * 2009-11-26 2011-06-09 한양대학교 산학협력단 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
US20120072632A1 (en) * 2010-09-17 2012-03-22 Paul Kimelman Deterministic and non-Deterministic Execution in One Processor
US20120221785A1 (en) * 2011-02-28 2012-08-30 Jaewoong Chung Polymorphic Stacked DRAM Memory Architecture
US9141394B2 (en) * 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US8843709B2 (en) * 2011-11-28 2014-09-23 Mediatek Inc. Method and apparatus for performing dynamic configuration
US8984230B2 (en) * 2013-01-30 2015-03-17 Hewlett-Packard Development Company, L.P. Method of using a buffer within an indexing accelerator during periods of inactivity
US9495271B2 (en) * 2014-01-29 2016-11-15 Freescale Semiconductor, Inc. Statistical power indication monitor for purpose of measuring power consumption

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233659B1 (en) * 1998-03-05 2001-05-15 Micron Technology, Inc. Multi-port memory device with multiple modes of operation and improved expansion characteristics
US20100235579A1 (en) * 2006-02-22 2010-09-16 Stuart David Biles Cache Management Within A Data Processing Apparatus
KR20120068630A (ko) * 2010-12-17 2012-06-27 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
KR20120072211A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 메모리 매핑장치 및 이를 구비한 멀티프로세서 시스템온칩 플랫폼
KR102002900B1 (ko) * 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087900A (ko) * 2014-11-25 2017-07-31 알리바바 그룹 홀딩 리미티드 메모리 관리 방법 및 장치

Also Published As

Publication number Publication date
EP3029580B1 (en) 2019-04-10
US20160196206A1 (en) 2016-07-07
KR102117511B1 (ko) 2020-06-02
EP3029580A4 (en) 2017-04-19
CN105453066B (zh) 2019-03-01
EP3029580A1 (en) 2016-06-08
CN105453066A (zh) 2016-03-30
WO2015016615A1 (ko) 2015-02-05

Similar Documents

Publication Publication Date Title
US10817201B2 (en) Multi-level memory with direct access
JP6250613B2 (ja) 装置における電源管理のためのリソース割当及び解除
TWI578156B (zh) 非依電性隨機存取記憶磁碟
CN108470007B (zh) 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法
EP1805629B1 (en) System and method for virtualization of processor resources
US8405668B2 (en) Streaming translation in display pipe
US9317312B2 (en) Computer and memory management method
US9431077B2 (en) Dual host embedded shared device controller
JP2007183962A (ja) 一体型メモリ及びコントローラ
US20190050161A1 (en) Data storage controller
US9740437B2 (en) Mechanism to adapt garbage collection resource allocation in a solid state drive
US10754785B2 (en) Checkpointing for DRAM-less SSD
US11144467B2 (en) Bypassing cache memory in a write transaction in a system with multi-level memory
KR102117511B1 (ko) 프로세서 및 메모리 제어 방법
US9785345B2 (en) Mode-dependent access to embedded memory elements
US10042773B2 (en) Advance cache allocator
US9436617B2 (en) Dynamic processor-memory revectoring architecture
KR20150096177A (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
JP2005165592A (ja) データ転送装置
KR102343599B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US20220391092A1 (en) Memory system and operating method thereof
JP2023112427A (ja) メモリシステム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant