KR101265295B1 - 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법 - Google Patents

메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법 Download PDF

Info

Publication number
KR101265295B1
KR101265295B1 KR1020090092594A KR20090092594A KR101265295B1 KR 101265295 B1 KR101265295 B1 KR 101265295B1 KR 1020090092594 A KR1020090092594 A KR 1020090092594A KR 20090092594 A KR20090092594 A KR 20090092594A KR 101265295 B1 KR101265295 B1 KR 101265295B1
Authority
KR
South Korea
Prior art keywords
cache
memory
unit
matching
data
Prior art date
Application number
KR1020090092594A
Other languages
English (en)
Other versions
KR20110035046A (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 KR1020090092594A priority Critical patent/KR101265295B1/ko
Publication of KR20110035046A publication Critical patent/KR20110035046A/ko
Application granted granted Critical
Publication of KR101265295B1 publication Critical patent/KR101265295B1/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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

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

Abstract

본 발명은 멀티 프로세싱유닛이 메모리를 공유하여 사용함에 있어 프로세싱유닛 사이에 데이터 일관성 유지를 용이하게 하고, 프로세싱유닛의 메모리 데이터 재사용 및 데이터 쓰기에 있어 대기 시간을 최소로 하며, 메모리의 크기와 특성 그리고 그 메모리에 속한 데이터의 종류 및 성질에 따라 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법을 제공한다.
이를 위해, 본 발명의 메모리정합부별로 가변할당 가능한 캐쉬 장치는 복수의 프로세싱유닛과 복수의 메모리 사이를 정합하는 적어도 하나의 메모리정합부와, 메모리에 대한 액세스(access) 제어 및 중재를 수행하는 메모리제어부 및 메모리정합부에 위치하여 프로세싱유닛과 메모리 사이에서 주고 받는 데이터를 임시 저장하고, 메모리정합부별로 고정 또는 가변적으로 캐쉬유닛을 할당하는 메모리정합가변캐쉬를 포함한다.
캐쉬, 메모리 인터페이스, 멀티 프로세싱유닛, 메모리

Description

메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법{Cache method and devices which can be flexibly allocated to each memory interface}
메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법에 관한 것으로, 더욱 상세하게는 메모리의 크기와 특성 그리고 그 메모리에 속한 데이터의 종류 및 성질에 따라 캐쉬할당을 고정 또는 가변할 수 있는 메모리정합부별로 캐쉬유닛을 할당하는 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법에 관한 것이다.
본 연구는 지식경제부의 IT성장동력기술개발의 일환으로 수행한 연구로부터 도출된 것이다.[과제관리번호: 2008-S-009-02, 과제명: 패킷-광 통합 스위치 기술 개발]
일반적으로 퍼스널 컴퓨터(PC), 임베디드 시스템(Embeded system), 네트워크 프로세싱유닛, 휴대폰, 네비게이터, 디지털TV, 셋탑박스 등과 같은 디지털 장치에는 마이크로 프로세싱유닛, 오디오처리 프로세싱유닛, 이더넷(Ethernet) 제어부, 저장장치 제어부, 디스플레이 프로세싱유닛(DPU; Diplay Processing Unit) 및 기타 다양한 프로세싱유닛들을 포함한다.
이들 프로세싱유닛들은 각각이 필요로 하는 메모리의 특성 및 크기가 다르 고, 그 메모리에 저장되는 데이터의 종류 및 성질 또한 차이가 크다. 가령, 마이크로 프로세싱 유닛는 디지털 장치를 전반적으로 제어하므로 가장 많은 량의 메모리를 필요로 하고 그 내용은 수시로 업 다운되는 명령코드와 데이터가 혼재되어 있고, 디스플레이 프로세싱 유닛이나 이더넷 제어부는 고속의 메모리를 필요로 하고 그 내용은 고정된 간단한 명령코드와 입출력이 잦은 데이터로 구성된다.
그리고, 오디오 프로세싱 유닛과 같이 낮은 컴퓨팅 파워를 요구하는 프로세싱 유닛의 경우 저속의 소용량 메모리로도 기능 구현이 가능하다. 통상 디지털 장치는 설계, 생산, 비용상의 편의를 위해 메모리를 여러 프로세싱유닛이 공유하도록 만드는데, 이 경우 프로세싱유닛 사이에 데이터 일관성 유지가 쉽지 않고 일관성 유지만을 위해서도 많은 프로세싱 사이클을 소비해야 한다. 멀티 프로세싱유닛 환경에서 하나 이상의 메모리 및 메모리인터페이스를 사용할 경우 메모리의 크기와 특성 그리고 그 메모리에 속한 데이터의 종류 및 성질에 따라 데이터 캐쉬의 방법, 장치, 크기를 달리할 필요가 있다.
또한, 모바일 기기에서 사용되는 프로세싱유닛과 메모리의 경우, 물리적인 크기와 전원 사용 시간의 제약으로 인해 집적화와 저전력화가 핵심 이슈 및 기술 사항으로 지적되고 있다. 모바일 기기의 프로세싱유닛의 경우 낮은 전력으로 많은 일을 하기 위해서는 메모리로부터 필요한 명령코드와 데이터를 오류 및 재실행 없이 고속으로 불러올 수 있어야 한다. 이때 프로세싱유닛내의 캐쉬에 해당 데이터가 없을 경우 이를 외부 메모리에서 가져와야 하는데, 이로 인해 발생하는 외부 메모리 인터페이스와의 입출력은 프로세싱유닛의 대기시간 증가와 더불어 추가적인 사 이클 발생으로 인한 에너지 소비 증가 문제로 이어진다.
또한, 디지털 장치가 제공하는 서비스 종류가 다양해지고, 여러 가지 기능이 하나의 장치에 융합되면서 해당 장치가 서비스를 무리 없이 제공하기 위해 필요한 컴퓨팅파워가 급속히 증가하고 있다. 이는 디지털 장치내 각종 디바이스 동작 주파수를 올리게 하고, 멀티 프로세싱코어를 채용하여 병렬처리를 늘리게 하며, 특정 작업을 전담하는 하드웨어 로직 내지 제어부의 채용을 확산시킨다.
반도체 집적 기술의 향상과 위와 같은 요구사항의 출현으로 하나의 디바이스 안에 동종 내지 이종의 프로세싱 유닛이 다수 내장되어 있고, 단순 작업을 반복하는 하드웨어 로직 및 제어부가 함께 공존하며, 추가로 외부에 프로세싱 유닛을 연결할 수 있는 장치 및 기기들이 출현하고 있다. 이에 맞춰 다양한 종류의 애플리케이션, 운용 소프트웨어, 구동 프로그램 등이 출현하고 있고, 이들이 요구하는 데이터 액세스 방법, 데이터 저장 방법, 데이터 대역폭 또한 다양해지고 있다.
위와 같이 하나의 장치 내지 기기에 멀티 메모리, 멀티 프로세싱 유닛의 출현으로 이들 사이의 균형 잡힌 데이터 분산, 데이터 처리, 데이터 입출력이 핵심 선결 과제로 부각되고 있다.
그리고, 일반적으로 외부에 연결된 메모리의 데이터를 액세스하기 위해서는 그 요구 발생에서부터 응답까지 실제 데이터 유통에 필요한 대역폭 이외에 제어 및 명령 전달을 위한 대역과 데이터 전송 준비 및 대기를 위한 대역 소모가 불가피하고, 외부 전기선을 통한 신호전달이기 때문에 고속의 안정된 데이터 전송에 한계가 있다. 이는 위에서 지적한 복수의 프로세싱유닛과 메모리 사이의 균형 잡힌 데이터 분산, 데이터 처리, 데이터 입출력을 어렵게 한다.
본 발명은 복수의 프로세싱유닛과 복수의 메모리가 탑재되는 디지털 장치에서, 데이터 생산 및 소비 객체 사이의 균형 잡힌 데이터 분산, 데이터 처리, 데이터 입출력을 위해, 프로세싱유닛의 메모리 데이터 재사용 및 데이터 쓰기에 있어 대기 시간을 최소로 하며, 메모리의 크기와 특성 그리고 그 메모리에 속한 데이터의 종류 및 성질에 따라 캐쉬할당을 고정 또는 가변할 수 있는, 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명은 멀티 프로세싱유닛이 메모리를 공유하여 사용함에 있어 프로세싱유닛 사이에 데이터 일관성 유지를 용이하게 하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명은 메모리정합부별 가변할당 캐쉬를 통해 동일 메모리를 사용하는 프로세싱유닛들의 메모리 공유를 용이하게 하면서 프로세싱유닛들의 외부 메모리 액세스 횟수를 줄여, 데이터 액세스 성능을 개선하고, 외부 고속 신호의 반복 이용에 따른 오류 발생 확률과 에너지 소모를 낮출 수 있는, 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법을 제공함에 그 목적이 있다.
또한, 본 발명은 애플리케이션 및 운용 소프트웨어의 변경에 따라 관련 프로세싱유닛 및 메모리 자원의 재설정이 필요한 경우 그와 관련된 캐쉬 자원의 변경이 가능하고 캐쉬 자원 확장이 용이한, 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법을 제공함에 있다.
상기 목적을 달성하기 위하여, 본 발명의 실시 예에 따른 메모리정합부별로 가변할당 가능한 캐쉬 장치는 복수의 프로세싱유닛과 복수의 메모리 사이를 정합하는 적어도 하나의 메모리정합부와, 메모리에 대한 액세스(access) 제어 및 중재를 수행하는 메모리제어부 및 메모리정합부에 위치하여 프로세싱유닛과 메모리 사이에서 주고 받는 데이터를 임시 저장하고, 메모리정합부별로 고정 또는 가변적으로 캐쉬유닛을 할당하는 메모리정합가변캐쉬를 포함한다.
프로세싱유닛연결점, 메모리정합부연결점, 및 캐쉬유닛연결점을 통해 데이터의 생산자와 소비자 역할을 하는 객체들와 연결되어 있고, 해당 객체 사이를 연결하거나 절체하는 상기 메모리정합가변캐쉬와 연결된 루트제어기를 더 포함한다.
상기 메모리정합부에 할당된 캐쉬유닛들을 메모리정합부별로 그룹핑하거나 상기 캐쉬유닛의 제어를 수행하고, 캐쉬검색결과 및 캐쉬 상태를 수집하고 수집한 정보들을 토대로 상기 루트제어기를 제어하고, 메모리를 공유하는 모든 장치들에게 상기 캐쉬 상태를 알려주는 캐쉬그룹제어부를 더 포함한다.
상기 캐쉬그룹제어부는 상기 메모리제어부로부터 메모리 사용 권한을 받아 캐쉬유닛의 데이터 뒤쓰기(write-back) 및 특정 주소의 메모리 읽기를 수행하는 것을 특징으로 한다.
상기 캐쉬그룹제어부는 프로세싱유닛이 이전에 액세스한 어드레스 다음의 어드레스 영역에서 읽어온 데이터를 캐쉬유닛에 저장하는 것을 특징으로 한다.
캐쉬업데이트채널묶음에서 적어도 하나의 캐쉬업데이트채널의 연결 선택 또는 제외하는 기능을 수행하고, 선택된 캐쉬업데이트채널에서 캐쉬유닛 정보를 선별, 가공, 및 분류하여 상기 프로세싱유닛에 제공하는 상기 프로세싱유닛과 연결된 캐쉬업데이트채널선택기를 더 포함하는 것을 특징으로 한다.
상기 메모리정합가변캐쉬는 상기 캐쉬유닛이 하나 또는 그 이상의 규격을 가진 메모리로 구성되어 있을 경우, 메모리의 크기와 특성 또는 메모리에 속한 데이터의 종류 및 성질에 따라 상기 메모리정합부별로 상기 캐쉬유닛을 할당하는 것을 특징으로 한다.
상기 메모리정합부에 캐쉬유닛을 할당하기 위해 상기 메모리정합부와 연관되어 있는 캐쉬버스 중 적어도 하나를 상기 캐쉬유닛에 연결하는 수단을 포함하는 캐쉬유닛정합부를 더 포함하는 것을 특징으로 한다.
본 발명의 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법에 따르면 다음과 같은 장점이 있다.
첫째, 본 발명은 복수의 프로세싱유닛과 복수의 메모리가 탑재되는 디지털 장치에서, 데이터 생산 및 소비 객체 사이의 균형 잡힌 데이터 분산, 데이터 처리, 데이터 입출력을 위해, 프로세싱유닛의 메모리 데이터 재사용 및 데이터 쓰기에 있어 대기 시간을 최소로 하며, 메모리의 크기와 특성 그리고 그 메모리에 속한 데이터의 종류 및 성질에 따라 캐쉬할당을 고정 또는 가변할 수 있는 장점이 있다.
둘째, 본 발명은 멀티 프로세싱유닛이 메모리를 공유하여 사용함에 있어 프 로세싱유닛 사이에 데이터 일관성 유지를 용이하게 하는 장점도 있다.
셋째, 본 발명은 메모리정합부별 가변할당 캐쉬를 통해 동일 메모리를 사용하는 프로세싱유닛들의 메모리 공유를 용이하게 하면서 프로세싱유닛들의 외부 메모리 액세스 횟수를 줄여, 데이터 액세스 성능을 개선하고, 외부 고속 신호의 반복 이용에 따른 오류 발생 확률과 에너지 소모를 낮출 수 있는 장점도 있다.
넷째, 본 발명은 애플리케이션 및 운용 소프트웨어의 변경에 따라 관련 프로세싱유닛 및 메모리 자원의 재설정이 필요한 경우 그와 관련된 캐쉬 자원의 변경이 가능하고 캐쉬 자원 확장이 용이한 장점도 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
도 1은 본 발명의 일 실시 예에 따른 메모리정합별로 가변할당 가능한 캐쉬 장치의 구성도를 나타낸다.
도 1에 도시된 바와 같이, 메모리 브릿지(또는 메모리 스위칭 장치)(1)는 프 로세싱유닛(2~5), 메모리정합가변캐쉬(18), 메모리정합연결부(13,17), 메모리정합부(32,35,37,40)를 포함한다.
프로세싱유닛(2~5)은 메모리 브릿지(1)의 내부에 내장되어 있을 수도 있고, 외부에 별개로 존재할 수도 있는데, 외부에 있는 형태일 경우 메모리 브릿지(1)는 외부 프로세싱유닛의 메모리 연결 중계 기능을 수행한다. 예컨대, 프로세싱유닛(2~5)은 CPU, 프로세서, DMA, 각종 제어부(이더넷 제어부, 하드디스크 제어부, USB 제어부 등)를 포함할 수 있으며, 또한 메모리 사용을 필요로 하는 모든 종류의 기능, 기기, 모듈을 포함할 수 있다.
메모리정합부(32,35,37,40)는 메모리(45~48) 액세스(aceess)를 제어하는 메모리 제어부(30,33,36,38), 메모리정합부캐쉬(31,34,39)를 포함한다.
메모리제어부(30,33,36,38)는 프로세싱유닛(2~5)과 메모리정합가변캐쉬 (18)의 메모리 (45~48) 사용 및 데이터 흐름을 제어한다.
메모리정합부캐쉬(31,34,39)는 메모리정합부(32,35,37,40)에 연결된 메모리(45~48) 데이터 일부를 저장하거나 뒤쓰기(write-back) 기능을 수행하고, 하나 이상의 프로세싱유닛(2~5)들의 메모리 데이터 공유 및 데이터 일관성 유지를 용이하게 한다.
메모리정합가변캐쉬(18)는 메모리 데이터를 캐쉬하는 캐쉬유닛(19~25), 캐쉬유닛(19~25)을 제어하는 캐쉬저장장치제어부(26)를 포함한다.
캐쉬유닛(19~25)은 동일한 또는 다양한 규격의 (고속) 메모리로 구성된다. 이때, 메모리의 크기와 특성 또는 메모리에 속한 데이터의 종류 및 성질에 따라 각 각의 메모리정합부(32,35,37,40)에 캐쉬유닛(19~25)이 가변 할당될 수 있다.
캐쉬저장장치제어부(26)는 메모리정합부(32,35,37,40)에 캐쉬유닛(19~25)을 맵핑(27~29)하는 기능과 프로세싱유닛(2~5)과 메모리정합부(32,35,37,40)사이에서 메모리 요청 신호, 응답 신호 및 데이터흐름을 통제한다.
또한, 캐쉬저장장치제어부(26)는 캐쉬유닛(19~25)에(의) 데이터를 입력, 검색, 및 출력하는 제어기능과, 캐쉬유닛(19~25)의 상태 알림 등을 수행할 수 있다.
메모리정합연결부(13,17)는 메모리제어부(30,33,36,38)의 통제(11,15)하에 ‘프로세싱유닛 to 메모리정합’ 버스그룹(10,14)에서 특정 프로세싱유닛(2~5)과 연결된 프로세싱유닛버스(6~9)를 골라 메모리정합버스(12,16)에 연결한다.
메모리(45~48)는 메모리브릿지(1) 외부에 위치하거나 내부에 내장된 형태로 존재하고, 외부에 별도의 형태로 존재할 경우 메모리버스(41~44)를 통해 연결된다.
도 2 및 도 3은 본 발명의 일 실시 예에 따른 메모리정합부와 캐쉬장치들 사이의 연결 및 제어에 대한 구성도이다.
도 2는 메모리 브릿지(100)의 메모리정합부에 캐쉬유닛(135,139,145)을 할당하는 방법과, 프로세싱유닛(101~104)이 메모리를 액세스할 때 캐쉬 관련 장치들이 수행하는 역할과 기능을 나타낸다.
캐쉬 관련 주요 장치에는 캐쉬유닛(135,139,145), 캐쉬유닛제어부 (148,151,158), 캐쉬그룹제어부(149,152,154,159), 캐쉬유닛정합부 (133,137,141,144), 루트제어기(106,113,120,126)가 있고, 이들 사이를 연결하기 위한 통로 또는 버스로 메모리정합-전(pre;前) 버스(107,114,121,127), 캐쉬버스(110,117,123,129), 캐시버스다발(131), 메모리정합버스 (132,136,140,143)가 있다.
메모리정합부의 메모리제어부(147,150,153,157)는 메모리 사용을 요구하는 모든 장치(프로세싱유닛(101~104), 캐쉬그룹제어부(149,152,154,159)) 로부터 메모리 사용 요청을 받고 이를 중재하여 해당 메모리 사용 요청 장치에 메모리 사용 승인, 기다림 및 버스 제어 신호(105,112,119,125,134,138,142,146)를 보낸다.
메모리정합연결부(108,115,122,128)는 메모리제어부(147,150,153,157)의 통제(105,112,119,125)하에 ‘프로세싱유닛 to 메모리정합’ 버스그룹(109,116)에서 특정 프로세싱유닛(101~104)과 연결된 프로세싱유닛버스를 골라 메모리정합전버스(107,114,121,127)에 연결한다.
캐쉬그룹제어부(149,152,154,159)는 메모리정합부에 할당된 캐쉬유닛들(135,139,145)을 메모리정합부별로 조직(또는 그룹핑)하고 캐쉬유닛(135,139,145)의 제어를 수행하고, 캐쉬검색결과(hit/miss) 및 캐쉬 상태들을 수집하고 수집한 정보들을 토대로 루트제어기(106,113,120,126)를 제어(111,118,124,130)한다. 또한, 캐쉬그룹제어부(149,152,154,159)는 메모리를 공유하는 모든 장치에 캐쉬 상태들을 알려주는 기능을 수행한다.
또한, 캐쉬그룹제어부(149,152,154,159)는 캐쉬유닛(135,139,145)의 데이터 뒤쓰기(write-back) 및 특정 주소의 메모리 읽기를 수행하기 위해 메모리 사용을 메모리제어부(147,150,153,157)에 요청하고 메모리 사용 권한을 받는 다(134,138,142,146).
한편, 도 3은 캐쉬버스다발(131)안의 캐쉬버스(170,171,172,173)와, 캐쉬유닛을 제어하는 캐쉬유닛제어부(183,184,185), 캐쉬버스다발(131)에서 특정 캐쉬버스를 캐쉬유닛에 연결하는 캐쉬유닛정합부(176,179,182)의 캐쉬버스선택기(174,177,180), 캐쉬유닛들을 메모리정합부에 조직하고 캐쉬유닛과 관련된 각종 제어와 상태 취합 및 상태알림 기능을 하는 캐쉬저장장치제어부(186), 캐쉬저장장치제어부(186)의 제어신호와 캐쉬유닛들의 상태 정보를 중계 전달하는 캐쉬유닛연결중계장치(187,188,189)를 나타낸다.
각각의 캐쉬버스(170,171,172,173)는 특정 메모리정합부와 연관되어 있기 때문에 캐쉬유닛을 특정 메모리정합부에 할당하기 위해서는 해당 캐쉬버스(170,171,172,173)에 캐쉬유닛을 연결해야 한다. 이는 캐쉬저장장치제어부(186)가 캐쉬유닛정합부(176,179,182)의 캐쉬버스선택기(174,177,180)를 제어(175,178,181)함으로써 가능하다.
캐쉬유닛연결중계장치(187,188,189)는 캐쉬저장장치제어부(186)와 캐쉬유닛 및 캐쉬유닛제어부(183,184,185)사이에서 제어신호 및 상태정보신호를 중계하고 전달하는 기능을 수행하고, 캐쉬유닛 및 캐쉬유닛제어부(183,184,185)를 메모리정합부에 맵핑하기 위한 수단을 포함한다.
도 4는 본 발명의 일 실시 예에 따른 캐쉬저장장치제어부의 캐쉬장치 제어에 대한 구성도이다.
도 4는 독립적으로 캐쉬기능이 가능한 캐쉬유닛(216,220,224,228,232)과 캐쉬유닛제어부(217,221,225,229,233)를 캐쉬저장장치제어부(235)의 캐쉬그룹제어부(236,241)가 메모리정합부(202,209)에 할당하는 방법과, 메모리정합부(202,209)에서 입력되는 메모리 데이터를 캐쉬유닛(216,220,224,228, 232)에 할당하는 방법을 나타낸다.
캐쉬그룹제어부(236,241)는 메모리정합부(202,209) 각각에 맵핑되고, 캐쉬유닛정합부(215,219,223,227,231)와 캐쉬유닛연결중계장치(238,239,240,242, 243)를 제어하여 독립적으로 캐쉬기능이 가능한 캐쉬유닛(216,220,224,228,232)과 캐쉬유닛제어부(217,221,225,229,233)를 메모리정합부(202,209)에 가변 할당한다.
캐쉬그룹제어부(236,241)는 메모리정합부(202,209)에 연결된 메모리에서 읽어온 데이터를 캐쉬에 저장하는데 있어서 어떤 캐쉬유닛(216,220,224,228,232)에 할당할지 결정한다.
그 결정 방법의 예로써, 캐쉬유닛(216,220,224,228,232)의 활용정도를 기반으로 결정하는 방법, 캐쉬유닛(216,220,224,228,232)에 있는 데이터의 나이를 기반으로 결정하는 방법, 데이터의 중요도를 기반으로 결정하는 방법, 캐쉬유닛(216,220,224,228,232)의 메모리 주소 맵핑정책을 기반으로 결정하는 방법, 및 상기의 방법들을 하나 이상 혼용하는 방법 등이 이용될 수 있다.
캐쉬그룹제어부(236,241)는 루트제어기(201,208)를 제어(200,207)하여 프로세싱유닛(203,210), 메모리정합부(202,209), 캐쉬유닛(216,220,224,228, 232) 사이 의 데이터 흐름을 통제한다.
루트제어기(201,208)는 프로세싱유닛연결점(204,211), 메모리정합부연결점 (201,208), 캐쉬유닛연결점(206,213)을 통해 데이터의 생산자와 소비자 역할을 하는 각 객체와 연결되어 있고, 이들 연결점 사이를 연결하거나 절체한다. 캐쉬유닛연결중계장치(238,239,240,242,243)는 캐쉬그룹제어부(236,241)의 제어하에 캐쉬제어버스다발(237)에서 메모리정합부(202,209)와 연결된 캐쉬제어버스를 선택하여 캐쉬유닛(216,220,224,228,232)과 캐쉬유닛제어부(217,221,225,229,233)에 연결한다.
또한, 캐쉬유닛연결중계장치(238,239,240,242,243)는 캐쉬그룹제어부(236,241)의 제어신호를 캐쉬유닛(216,220,224,228,232) 및 캐쉬유닛제어부(217,221,225,229, 233)에 전달하고, 캐쉬유닛(216,220,224,228,232) 및 캐쉬유닛제어부(217,221,225,229,233)의 캐쉬 상태정보를 캐쉬그룹제어부(236,241)에 올려준다.
캐쉬유닛정합부(215,219,223,227,231)는 캐쉬그룹제어부(236,241)의 제어(218,222,226,230,234)하에 캐쉬버스다발(214)에서 메모리정합부(202,209)와 연관된 캐쉬버스를 선택하여 캐쉬유닛(216,220,224,228,232)과 캐쉬유닛제어부(217,221,225,229, 233)에 연결한다.
도 5는 본 발명의 일 실시 예에 따른 메모리 읽기와 쓰기에서 루트제어기의 연결 제어에 대한 구성도를 도시한다.
도 5는 메모리 읽기(300)와 메모리 쓰기(350)에서 루트제어기(305)의 작동 방법에 대한 예를 나타낸다.
루트제어기(305)는 프로세싱유닛측(side)의 메모리정합-전버스(301)와 연결된 프로세싱유닛연결점(302), 메모리정합버스(304)와 연결된 메모리정합부연결점(303), 캐쉬버스(308)와 연결된 캐쉬유닛연결점(307)을 포함하고 있는데, 상기 각 연결점을 통해 데이터의 생산자와 소비자 역할을 하는 각 객체와 연결되어 있고, 버스연결기(내지 MUX등의 버스연결수단)(306)를 이용하여 이들 연결점 사이를 연결하거나 절체한다.
메모리 읽기(300)에서 루트제어기(305)의 연결점 사이 연결/절체 제어방법 및 흐름의 예로 다음의 상태(state 또는 phase)들을 포함할 수 있다. 루트제어기(305)의 연결 및 절체는, 프로세싱유닛으로부터 메모리 읽기 요청이 들어오면 캐쉬유닛에 데이터가 있는지 검색하기 위해 프로세싱유닛연결점(302)과 캐쉬유닛연결점(307)을 연결하는 상태(309)와, 캐쉬유닛에 데이터가 있을 경우(이하 히트라 칭함)(310) 캐쉬 유닛의 데이터를 프로세싱유닛에 전달할 수 있게 프로세싱유닛연결점(302)과 캐쉬유닛연결점(307)을 연결하는 상태(312)를 포함한다.
또한, 캐쉬유닛에 데이터가 없을 경우(이하 미스라 칭함)(311) 메모리정합부에 데이터 읽기를 요청(313)하기 위해 프로세싱유닛연결점(302)과 메모리정합부연결점(303)을 연결하는 상태(314) 또는 캐쉬유닛연결점(307)과 메모리정합부연결점(303)을 연결하는 상태(캐쉬유닛이 프로세싱유닛이 요청한 데이터를 메모리정합부에 요청 중계하기 위해)(315)를 포함한다.
또한, 메모리정합부를 통해 메모리에서 읽어온 데이터를 프로세싱유닛과 캐 쉬유닛에 전달(316)하기 위해 메모리정합부연결점(303)을 프로세싱유닛연결점(302)과 캐쉬유닛연결점(307)에 연결하는 상태(317) 또는 메모리정합부연결점(303)을 캐쉬유닛연결점(307)에 연결하는 상태(318)와 캐쉬유닛이 이를 프로세싱유닛에 전달하기 위해 캐쉬유닛연결점(307)을 프로세싱유닛연결점(302)과 연결하는 상태(319)를 포함한다.
그리고, 메모리 쓰기(350)에서 루트제어기(305)의 연결점 사이 연결/절체 제어방법 및 흐름의 예로, 루트제어기(305)의 연결 및 절체는, 프로세싱유닛으로부터 메모리 쓰기 요청이 들어오면 캐쉬유닛과 메모리에 데이터를 쓰기 위해 프로세싱유닛연결점(302)을 캐쉬유닛연결점(307)과 메모리정합부연결점(303)에 연결하는 상태(351)와, 프로세싱유닛이 쓰기 데이터를 캐쉬유닛에 넣은 다음 캐쉬유닛이 뒤쓰기(write-back)하도록 프로세싱유닛연결점(302)을 캐쉬유닛연결점(307)에 연결하는 상태(352)와, 캐쉬유닛이 메모리에 뒤쓰기(write-back)하도록 캐쉬유닛연결점(307)을 메모리정합부연결점(303)에 연결하는 상태를 포함할 수 있다.
그 외 캐쉬유닛의 사용 방법에 따라 루트제어기(305)의 다양한 연결/절체 제어방법, 상태, 상태변이가 생길 수 있다.
도 6와 도 7은 본 발명의 일 실시 예에 따른 멀티 프로세싱유닛에 대한 캐쉬장치의 상태 알림 방법에 대한 구성도를 나타낸다.
도 6와 도 7은 캐쉬저장장치제어부(405,455)가 캐쉬유닛(여기서는 캐쉬유닛제어부포함)(400~404, 450~454)의 상태 정보를 프로세싱유닛(421~423,469~471)에 전달하는 방법의 예를 나타낸다.
도 6에 도시된 바와 같이, 메모리정합별로 캐쉬업데이트채널(414,415)이 구성되고, 프로세싱유닛(421~423)의 캐쉬업데이트채널선택기(417~419)가 특정 메모리정합과 연관된 캐쉬유닛(400~404)의 상태 정보만을 받을 수 있게 캐쉬업데이트채널묶음(416)에서 캐쉬업데이트채널(414,415)을 선택하는 예를 나타낸다.
상기와 다른 예로써, 캐쉬유닛(400~404)별로 캐쉬업데이트채널(414,415)이 구성되고, 프로세싱유닛(421~423)의 캐쉬업데이트채널선택기(417~419)가 특정 캐쉬유닛(400~404)의 상태 정보만을 받을 수 있게 캐쉬업데이트채널묶음(416)에서 캐쉬업데이트채널(414,415)을 선택할 수 있다.
캐쉬유닛연결중계장치(408~410,412,413)를 통해 수용되는 캐쉬유닛(400~404) 의 상태/검색/변경 정보 등은 캐쉬저장장치제어부(405)의 캐쉬제어버스(407)를 통해 캐쉬그룹제어부(406,411)에 전달되고, 캐쉬그룹제어부(406,411)는 이 정보들을 캐쉬업데이트채널(414,415)에 내보낸다. 캐쉬그룹제어부(406,411)는 캐쉬업데이트채널(414,415)에 내보낼 캐쉬유닛(400~404)의 정보를 선별, 가공할 수 있다.
캐쉬업데이트채널 중재기(420)는 하나의 캐쉬업데이트채널(414,415)에 여러 개의 캐쉬그룹제어부(406,411)와 같은 마스터가 물려있을 경우 캐쉬업데이트채널(414,415)의 사용을 중재하는 기능을 하는데, 캐쉬업데이트채널(414,415)에 하나의 마스터만 연결되어 있을 경우 그 기능을 비활성시키거나 중재기(420) 자체를 생략할 수도 있다.
또한, 캐쉬업데이트채널선택기(417~419)는 캐쉬업데이트채널묶음(416)에서 하나 또는 그 이상의 캐쉬업데이트채널(414,415)의 연결 선택 내지 제외하는 기능을 한다.
그리고, 캐쉬업데이트채널선택기(417~419)는 선택된 캐쉬업데이트채널(414,415)에서 필요한 캐쉬유닛(400~404) 정보만을 선별, 가공, 및 분류하여 프로세싱유닛(421~423)에 올리거나, 모든 정보를 가공 없이 올릴 수도 있으며, 이들 기능의 선택과 조합은 변경 설정가능하다.
여기서, 캐쉬업데이트채널선택기(417~419)는 프로세싱유닛(421~423)에 포함되거나 별도의 장치로 존재할 수 있다. 별도의 장치로 존재할 경우 프로세싱유닛(421~423)의 캐쉬 상태 입력 수단과 연동하여 프로세싱유닛(421~423)에 캐쉬유닛(400~404)의 상태 정보를 전달한다.
한편, 도 7은 공통의 캐쉬업데이트채널(464)을 구성하고 프로세싱유닛(469~471)의 캐쉬업데이트채널선택기(465~467)가 캐쉬유닛(450~454)의 상태 정보를 선택하여 받을 수 있는 예를 나타낸다.
캐쉬유닛연결중계장치(458~460,462,463)를 통해 수용되는 캐쉬유닛(450~454) 의 상태, 검색, 및 변경 정보 등은 캐쉬저장장치제어부(455)의 캐쉬제어버스(457)를 통해 캐쉬그룹제어부(456,461)에 전달되고, 캐쉬그룹제어부(456,461)는 해당 정보들을 캐쉬업데이트채널(464)에 내보낸다. 여기서, 캐쉬그룹제어부(456,461)는 캐쉬업데이트채널(464)에 내보낼 캐쉬유닛(450~454)의 정보를 선별, 가공할 수 있다.
그리고, 캐쉬업데이트채널 중재기(468)는 공통의 캐쉬업데이트채널(464)에 여러 개의 캐쉬그룹제어부(456,461)가 물려있을 경우 캐쉬업데이트채널(464)의 사용을 중재한다.
또한, 캐쉬업데이트채널선택기(465~467)는 캐쉬업데이트채널(464)의 연결 선택 내지 제외하는 기능을 한다. 만약, 연결 선택했을 경우, 캐쉬업데이트채널선택기(465~467)는 필요한 캐쉬유닛(400~404) 정보만을 선별/가공/분류하여 프로세싱유닛(469~471)에 올리거나, 모든 정보를 가공 없이 올릴 수도 있으며, 있으며, 이들 기능의 선택과 조합은 변경 설정 가능하다.
또한, 캐쉬업데이트채널선택기(465~467)는 프로세싱유닛(469~471)에 포함되거나 별도의 장치로 존재할 수 있다. 별도의 장치로 존재할 경우 프로세싱유닛(469~471)의 캐쉬 상태 입력 수단과 연동하여 프로세싱유닛(469~471)에 캐쉬유닛(450~454)의 상태 정보를 전달한다.
도 8은 본 발명의 일 실시 예에 따른 캐쉬장치의 확장에 대한 구성도를 나타낸다.
도 8은 메모리정합가변캐쉬(504,512,520,555,556,557,559)의 확장에 대한 예를 나타낸다. 메모리정합가변캐쉬(504,512,520,555,556,557,559)의 확장은 직렬방식(500~529), 병렬방식(550~564), 직렬병렬혼합방식(도면에는 생략)이 있다.
직렬방식(500~529)의 확장은 메모리정합버스(502,509,517,503,510,518)를 따라 메모리정합가변캐쉬(504,512,520,555,556,557,559)를 직렬로 정렬하는 방식으로 프로세싱유닛들(500,501)과 메모리정합부(528,529) 사이에서 오가는 데이터를 데이 터의 종류, 또는 데이터의 위치, 또는 데이터의 크기, 또는 기타의 데이터를 분별할 수 있는 방식 및 이들의 혼합에 따라 메모리정합가변캐쉬(504,512,520,555,556,557,559)에 데이터를 선택적으로 캐쉬 할 수 있는 방법을 제공한다.
이때, 루트제어기(505,507,513,515,521,523)는 메모리정합버스(502,509,517,503,510,518)상의 메모리 액세스 정보를 보고 프로세싱유닛(500,501)쪽의 메모리정합버스 연결점과 메모리정합부(528,529)쪽의 메모리정합버스 연결점과 캐쉬버스(506,508,514,516,522,524) 연결점을 연결 또는 절체하여 프로세싱유닛들(500,501)과 캐쉬저장장치및제어기(511,519,527)와 메모리정합부(528,529) 사이의 데이터 흐름을 제어한다.
그리고, 병렬방식(550~564)의 확장은 메모리정합버스(552,560,554,561)를 따라 메모리정합가변캐쉬(555,556,557,559)를 병렬로 정렬하는 방식으로 프로세싱유닛들(550,551)과 메모리정합부(563,564) 사이에서 오가는 데이터를 데이터의 종류, 또는 데이터의 위치, 또는 데이터의 크기, 또는 기타의 데이터를 분별할 수 있는 방식 및 이들의 혼합에 따라 메모리정합가변캐쉬(555,556,557,559)에 데이터를 선택적으로 캐쉬할 수 있는 방법을 제공한다.
여기서, 데이터 흐름 제어는 커몬(common)루트제어기(558)를 통해 이루어지는데, 이 장치는 메모리정합버스(552,560,554,561)상의 메모리 액세스 정보를 보고 각 메모리정합가변캐쉬(555,556,557,559)의 프로세싱유닛(550,551)쪽의 메모리정합버스 연결점과 메모리정합부(563,564)쪽의 메모리정합버스 연결점과 캐쉬버스 연결 점을 연결/절체하여 프로세싱유닛들(550,551)과 메모리정합가변캐쉬(555,556,557,559)와 메모리정합부(563,564) 사이의 데이터 흐름을 제어한다.
메모리정합가변캐쉬(504,512,520,555,556,557,559)는 상기에서 언급한 직렬방식(500~529)과 병렬방식(550~564)을 여러 조합으로 혼합하여 확장할 수 있다.
상기와 같이 하나 이상의 메모리정합가변캐쉬(504,512,520,555,556,557, 559)가 존재할 경우, 이들은 캐쉬업데이트채널을 메모리정합부(528,529,563,564) 별로 공유하는 방식, 단일의 한 채널을 공유하는 방식, 캐쉬유닛별로 채널을 공유하는 방식, 완전 개별 분리된 채널을 이용하는 방식, 또는 이들을 혼합하여 사용하는 방식으로 구성할 수 있고, 이 캐쉬업데이트채널을 통해 프로세싱유닛(500,501,550,551)과 메모리정합가변캐쉬(504,512,520,555,556,557, 559)와 메모리 사이의 데이터 일관성을 유지한다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
도 1은 본 발명의 일 실시 예에 따른 메모리정합별로 가변할당 가능한 캐쉬 장치의 구성도.
도 2 및 도 3은 본 발명의 일 실시 예에 따른 메모리정합부와 캐쉬장치들 사이의 연결 및 제어에 대한 구성도.
도 4는 본 발명의 일 실시 예에 따른 캐쉬저장장치제어부의 캐쉬장치 제어에 대한 구성도,
도 5는 본 발명의 일 실시 예에 따른 메모리 읽기와 쓰기에서 루트제어기의 연결 제어에 대한 구성도.
도 6 및 도 7은 본 발명의 일 실시 예에 따른 멀티 프로세싱유닛에 대한 캐쉬장치의 상태 알림 방법에 대한 구성도.
도 8은 본 발명의 일 실시 예에 따른 캐쉬장치의 확장에 대한 구성도.
<도면의 주요 부분에 대한 부호의 설명>
32, 35, 37, 40, 202, 209, 528, 529, 563, 564 : 메모리정합부
30, 33, 36, 38, 147, 150, 153, 157 : 메모리제어부
18 : 메모리정합가변캐쉬
19~25, 135, 139, 145, 183~185, 216, 220, 224, 228, 232 : 캐쉬유닛
2~5, 101~104, 421~423, 469~471 : 프로세싱유닛
186, 235, 405, 455 : 캐쉬저장장치제어부
149, 152, 154, 159, 236, 241, 406, 411, 456, 461 : 캐쉬그룹제어부
13, 17, 108, 115, 122, 128 : 메모리정합연결부
133, 137, 141, 144, 176, 179, 182, 215, 219, 223, 227, 231 : 캐쉬유닛정합부
106, 113, 120, 126, 205, 212, 305 : 루트제어기
417, 418, 419, 465, 466, 467 : 캐쉬업데이트채널선택기

Claims (8)

  1. 복수의 프로세싱유닛과 복수의 메모리 사이를 정합하는 적어도 하나의 메모리정합부;
    상기 메모리에 대한 액세스(access) 제어 및 중재를 수행하는 메모리제어부; 및
    상기 메모리정합부에 위치하여 상기 프로세싱유닛과 메모리 사이에서 주고 받는 데이터를 임시 저장하고, 상기 메모리정합부별로 고정 또는 가변적으로 캐쉬유닛을 할당하는 메모리정합가변캐쉬;를 포함하고,
    캐쉬업데이트채널묶음에서 적어도 하나의 캐쉬업데이트채널의 연결 선택 또는 제외하는 기능을 수행하고, 선택된 캐쉬업데이트채널에서 캐쉬유닛 정보를 선별, 가공, 및 분류하여 상기 프로세싱유닛에 제공하는 상기 프로세싱유닛과 연결된 캐쉬업데이트채널선택기를 더 포함하는 것을 특징으로 하는 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  2. 제 1항에 있어서,
    프로세싱유닛연결점, 메모리정합부연결점, 및 캐쉬유닛연결점을 통해 데이터의 생산자와 소비자 역할을 하는 각 객체들와 연결되어 있고, 해당 객체 사이를 연결하거나 절체하는 상기 메모리정합가변캐쉬와 연결된 루트제어기를 더 포함하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  3. 제 2항에 있어서,
    상기 메모리정합부에 할당된 캐쉬유닛들을 메모리정합부별로 그룹핑하거나 상기 캐쉬유닛의 제어를 수행하고, 캐쉬검색결과 및 캐쉬 상태를 수집하고 수집한 정보들을 토대로 상기 루트제어기를 제어하고, 메모리를 공유하는 모든 장치들에게 상기 캐쉬 상태를 알려주는 캐쉬그룹제어부를 더 포함하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  4. 제 3항에 있어서,
    상기 캐쉬그룹제어부는 상기 메모리제어부로부터 메모리 사용 권한을 받아 캐쉬유닛의 데이터 뒤쓰기(write-back) 및 특정 주소의 메모리 읽기를 수행하는 것을 특징으로 하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 캐쉬그룹제어부는 프로세싱유닛이 이전에 액세스한 어드레스 다음의 어드레스 영역에서 읽어온 데이터를 캐쉬유닛에 저장하는 것을 특징으로 하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  6. 삭제
  7. 제 1항에 있어서,
    상기 메모리정합가변캐쉬는 상기 캐쉬유닛이 하나 또는 그 이상의 규격을 가진 메모리로 구성되어 있을 경우, 메모리의 크기와 특성 또는 메모리에 속한 데이터의 종류 및 성질에 따라 상기 메모리정합부별로 상기 캐쉬유닛을 할당하는 것을 특징으로 하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
  8. 제1항에 있어서,
    상기 메모리정합부에 캐쉬유닛을 할당하기 위해 상기 메모리정합부와 연관되어 있는 캐쉬버스 중 적어도 하나를 상기 캐쉬유닛에 연결하는 수단을 포함하는 캐쉬유닛정합부를 더 포함하는, 메모리정합부별로 가변할당 가능한 캐쉬 장치.
KR1020090092594A 2009-09-29 2009-09-29 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법 KR101265295B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090092594A KR101265295B1 (ko) 2009-09-29 2009-09-29 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090092594A KR101265295B1 (ko) 2009-09-29 2009-09-29 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110035046A KR20110035046A (ko) 2011-04-06
KR101265295B1 true KR101265295B1 (ko) 2013-05-20

Family

ID=44043441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090092594A KR101265295B1 (ko) 2009-09-29 2009-09-29 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101265295B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100314001B1 (ko) 1998-10-13 2001-12-12 구자홍 가변라인사이즈를가지는캐시메모리

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100314001B1 (ko) 1998-10-13 2001-12-12 구자홍 가변라인사이즈를가지는캐시메모리

Also Published As

Publication number Publication date
KR20110035046A (ko) 2011-04-06

Similar Documents

Publication Publication Date Title
EP3754498B1 (en) Architecture for offload of linked work assignments
US6526462B1 (en) Programmable multi-tasking memory management system
CN102428451B (zh) 用于数据存储装置的命令及中断分组
KR101090651B1 (ko) 가상 머신 모니터 및 멀티프로세서 시스템
CN101908036B (zh) 一种高密度多处理器系统及其节点控制器
US20150127880A1 (en) Efficient implementations for mapreduce systems
EP2065804A1 (en) Virtual machine monitor and multi-processor system
US8661207B2 (en) Method and apparatus for assigning a memory to multi-processing unit
GB2491588A (en) Multiprocessor with different cache coherency protocols between different parts
JP2010537297A (ja) 論理区分の間におけるネットワーク・アダプタ・リソース割振り
US8868835B2 (en) Cache control apparatus, and cache control method
CN105159841B (zh) 一种内存迁移方法及装置
JPWO2011148920A1 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
CN111797051B (zh) 片上系统、数据传送方法及广播模块
CN103309833A (zh) 设备整合方法、终端装置和分布式多终端装置系统
CN106713250A (zh) 基于分布式系统的数据访问方法和装置
CN111581152A (zh) 可重构硬件加速soc芯片系统
US11157191B2 (en) Intra-device notational data movement system
CN112148467A (zh) 计算资源的动态分配
CN104714906A (zh) 动态处理器-存储器再向量化架构
CN110737618B (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
KR101265295B1 (ko) 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법
US9405470B2 (en) Data processing system and data processing method
CN115658326A (zh) 用于管理存储空间的装置及方法、计算设备、芯片
CN117940908A (zh) 动态分配高速缓存存储器作为ram

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: 20160427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee