KR100998929B1 - 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법 - Google Patents

캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법 Download PDF

Info

Publication number
KR100998929B1
KR100998929B1 KR1020090005849A KR20090005849A KR100998929B1 KR 100998929 B1 KR100998929 B1 KR 100998929B1 KR 1020090005849 A KR1020090005849 A KR 1020090005849A KR 20090005849 A KR20090005849 A KR 20090005849A KR 100998929 B1 KR100998929 B1 KR 100998929B1
Authority
KR
South Korea
Prior art keywords
cache
data
memory
zone
controller
Prior art date
Application number
KR1020090005849A
Other languages
English (en)
Other versions
KR20100086571A (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 KR1020090005849A priority Critical patent/KR100998929B1/ko
Priority to US12/651,918 priority patent/US20100191918A1/en
Publication of KR20100086571A publication Critical patent/KR20100086571A/ko
Application granted granted Critical
Publication of KR100998929B1 publication Critical patent/KR100998929B1/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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

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)

Abstract

본 발명은 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법에 관한 것이다.
본 발명에 따른 캐쉬 컨트롤러 장치는, 메모리에 분포된 데이터를 주 처리장치에 사전 패치(fetch)하여 공급하는 캐쉬(Cache) 컨트롤러 장치로서, 사이즈가 한정된 메모리 블록에 데이터를 임시저장하는 캐쉬 존, 사이즈가 한정된 메모리 블록으로부터 데이터를 순환적(circular)으로 캐쉬 메모리에 읽어오거나, 캐쉬 메모리로부터 데이터를 캐쉬 존에 이동시키는 캐쉬 컨트롤러, 캐쉬 존으로 데이터를 사전 패치하거나, 캐쉬 존으로부터 데이터를 메모리로 전송하도록 제어하는 메모리 입출력 컨트롤러를 포함한다.
캐쉬 존, 순환 캐쉬, 데이터 재배열, 캐쉬 히트

Description

캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법{CACHE CONTROLLER DEVICE, INTERFACING METHOD AND PROGRAMMING METHOD USING THEREOF}
본 발명은 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법에 관한 것이다.
일반적으로, 캐쉬 컨트롤러는 프로그램에서 필요할 가능성이 많은 인접 블록 메모리의 데이터를 사전 패치 하여 그 데이터가 주 처리장치에서 요구될 때 최대한 빠른 메모리 접근 싸이클로 공급함으로써 주 처리장치의 메모리 접근 싸이클을 줄이는 장치이다. 이러한 캐쉬 동작에 있어서 어떠한 메모리 접근 블록 주변의 데이터를 사전 패치하는 방식이 사용되고 있다.
또한, 일반적인 캐쉬 컨트롤러의 동작은 확률적으로 인접한 메모리 블록에 저장된 데이터가 다음번 명령의 실행에서도 사용될 빈도가 높은 점에 착안하여, 사전에 프로그램에서 사용여부에 관계없이 미리 인접 데이터 블록에 읽어두고, 프로 그램에서 사용될 때 주 처리장치에 공급하여, 메모리 접근에서의 효율성을 높이는 장치이다.
그러나, 이러한 동작은 프로그램에서 사용되는 데이터의 시퀀스가 큰 주소 차를 가지고 메모리에 저장되어 있을 경우 캐쉬 미스를 발생하게 되고, 미스된 데이터를 다시 불러오는 데 시간적인 지연이 발생하여, 싸이클의 낭비를 가져올 수 있다. 따라서, 이를 피하기 위해서는 주 처리장치에서 실행될 프로그램의 싸이클 최적화뿐 만 아니라 메모리 공간의 효율적인 사용을 위한 데이터열의 메모리 할당에도 많은 노력이 요구되어 왔다. 그러나, 경우에 따라서는 이의 개선이 불가능하여 불가피한 실행 싸이클의 낭비를 가져오는 경우가 있다. 또한, 경우에 따라서는 프로그램에서 요구되는 데이터가 메모리에서 연속적으로 분포하지 않고 큰 폭의 변위를 가지고 분포할 때, 캐쉬 미스를 야기하여, 캐쉬를 사용하지 않을 때 보다 큰 패널티를 발생시킬 수도 있다.
따라서, 상기와 같은 문제점을 해결하기 위하여, 본 발명은 주 처리장치에서 필요한 데이터 열을 캐쉬 존에 처리 순서에 맞게 재배열하여 공급해주고, 반대로 주 처리장치에서 발생하는 데이터의 쓰기 동작에서도 캐쉬 안에 있는 인접 메모리 블록에 쓰더라도, 백그라운드 처리에서 원래의 타겟 메모리로 끊김 없이 전달해 주는 것에 의하여, 종래의 캐쉬 컨트롤러의 동작인 비교적 간단한 규칙의 인접 메모리 데이터의 사전 패치가 야기할 수 있는 캐쉬 미스로 인한 패널티가 발생하지 않도록 할 수 있는 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은 특정한 블록의 프로그램을 수행할 때, 캐쉬 미스를 야기하지 않아 최적의 속도로 수행할 수 있는 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은 연속 메모리의 데이터를 사전 패치하는 일반적인 캐쉬 방식을 사용하면서도, 일반적인 캐쉬 방식이 오히려 효율적이지 않는 특정한 경우의 프로그램 블록에서 필요한 데이터의 분포를 사전에 알고, 그 위치의 데이터만 효율적으로 캐쉬 메모리에 읽혀질 수 있도록 강제하는 기능을 추가하여 주는 것에 의하여, 특정 프로그램 블록에서의 효율적인 메모리 접근 처리 및 실행 싸이클의 효율을 개선할 수 있는 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법을 제공하는 것을 그 목적으로 한다.
청구항 1에 관한 발명인 캐쉬 컨트롤러 장치는, 메모리에 분포된 데이터를 주 처리장치에 사전 패치(fetch)하여 공급하는 캐쉬(Cache) 컨트롤러 장치로서, 사이즈가 한정된 메모리 블록에 데이터를 임시저장하는 캐쉬 존, 사이즈가 한정된 메모리 블록으로부터 데이터를 순환적(circular)으로 캐쉬 메모리에 읽어오거나, 캐쉬 메모리로부터 데이터를 캐쉬 존에 이동시키는 캐쉬 컨트롤러, 캐쉬 존으로 데이터를 사전 패치하거나, 캐쉬 존으로부터 데이터를 메모리로 전송하도록 제어하는 메모리 입출력 컨트롤러를 포함한다.
청구항 2에 관한 발명인 캐쉬 컨트롤러 장치는, 청구항 1에 관한 발명인 캐쉬 컨트롤러 장치에 있어서, 캐쉬 컨트롤러는, 주 처리장치의 실행에 의해 캐슁 동작에서 순환 캐슁 동작으로의 전환 또는 순환 캐슁동작에서 일반 캐슁 동작으로의 전환을 제어하는 모드 제어 레지스터, 주 처리장치의 실행으로 변경 가능한 순환 캐싱 동작에서 타겟으로 하는 블록의 크기를 정의하는 캐쉬 맵 사이즈 레지스터, 주 처리장치의 실행으로 변경 가능한 순환 캐싱 동작에서 타겟으로 하는 블록의 위치를 정의하는 캐쉬 맵 주소 레지스터, 캐쉬 존의 읽기 및 쓰기 데이터 카운트 레지스터를 통하여 메모리 입출력 컨트롤러와의 동기를 위한 인터페이스, 순환 캐싱동작을 제어하는 제어 로직부를 포함한다.
청구항 3에 관한 발명인 캐쉬 컨트롤러 장치는, 청구항 1에 관한 발명인 캐쉬 컨트롤러 장치에 있어서, 캐쉬 존은 캐쉬 컨트롤러 및 메모리 입출력 컨트롤러 로부터 접근 가능(Dual access)한 버퍼 메모리 블록, 캐쉬 컨트롤러 및 메모리 입출력 컨트롤러와 동기를 접근 가능(Dual access)한 읽기 및 쓰기 데이터 카운트 레지스터를 포함한다.
청구항 4에 관한 발명인 캐쉬 컨트롤러 장치는, 청구항 1에 관한 발명인 캐쉬 컨트롤러 장치에 있어서, 메모리 입출력 컨트롤러는 읽기 데이터 시퀀스 열의 개수를 정의하는 읽기 시퀀스 수 레지스터, 쓰기 데이터 시퀀스 열의 개수를 정의하는 쓰기 시퀀스 수 레지스터, 읽기 전송 규칙 기술자중 시작기술자를 지시하는 읽기 기술자 엔트리(ENTRY), 쓰기 전송 규칙 기술자중 시작기술자를 지시하는 쓰기 기술자 엔트리(ENTRY), 쓰기 데이터 시퀀스열의 개수를 정의하는 쓰기 시퀀스 수 레지스터, 읽기 데이터 시퀀스 또는 쓰기 데이터 시퀀스의 각각의 전송규칙을 정의하는 전송 규칙 기술자 군, 읽기 및 쓰기 데이터 카운트 레지스터를 통하여 캐쉬 컨트롤러와의 동기를 위한 인터페이스를 포함한다.
청구항 5에 관한 발명인 캐쉬 컨트롤러 장치는, 청구항 4에 관한 발명인 캐쉬 컨트롤러 장치에 있어서, 전송 규칙 기술자 군은 전송규칙 기술자 인덱스, 읽기 또는 쓰기 모드를 지정하는 방향 필드, 다음 데이터 시퀀스의 인덱스를 지시하는 지시자 필드, 데이터 시퀀스의 개수 필드, 데이터 시퀀스의 시작주소 필드, 데이터 시퀀스의 간격 필드를 포함한다.
청구항 6에 관한 발명인 캐쉬 컨트롤러 장치의 인터페이스 방법은, 청구항 1 내지 청구항 5 중 어느 한 항에 따른 캐쉬 컨트롤러 장치를 이용하여 메모리에서 캐쉬로 읽어가는 동작에서 캐쉬 컨트롤러, 메모리 입출력 컨트롤러 및 캐쉬 맵 존을 인터페이스 하는 캐쉬 컨트롤러 장치의 인터페이스 방법으로서,메모리 입출력 컨트롤러가 읽기 시퀀스 수 레지스터의 내용만큼의 개수의 읽기 전송 규칙 기술자의 시작번지로부터 해당하는 회차의 간격 값으로부터 메모리 위치에서 데이터의 요소들을 재배열하여 캐쉬 존으로 읽어오는 제 1단계, 메모리 입출력 컨트롤러가 캐쉬 존의 읽기 데이터 카운트 레지스터를 증가시키고, 증가 이벤트를 캐쉬 컨트롤러로 전달하는 제2단계, 캐쉬 컨트롤러가 캐쉬 존의 데이터를 캐쉬 메모리로 전달하는 제3단계, 캐쉬 컨트롤러가 읽기 카운트 레지스터의 값을 감소시키고, 감소 이벤트를 메모리 입출력 컨트롤러로 전달하여 제1단계로 순환하게 하는 제4단계를 포함한다.
청구항 7에 관한 발명인 캐쉬 컨트롤러 장치의 인터페이스 방법은, 청구항 1 내지 청구항 5 중 어느 한 항에 따른 캐쉬 컨트롤러 장치를 이용하여 캐쉬 메모리에서 메모리로 쓰는 동작에서 캐쉬 컨트롤러, 메모리 입출력 컨트롤러 및 캐쉬 존을 인터페이스 하는 캐쉬 컨트롤러 장치의 인터페이스 방법으로서, 주 처리장치에서 프로그램에 의해 데이터가 캐쉬 메모리에 준비되는 제1단계, 캐쉬 컨트롤러가 캐쉬 메모리에서 캐쉬 존으로 데이터를 이동하는 제 2단계, 캐쉬 컨트롤러가 캐쉬 존의 쓰기 데이터 카운트 레지스터를 증가시키고, 증가 이벤트를 메모리 입출력 컨트롤러로 전달하는 제 3단계, 메모리 입출력 컨트롤러가 쓰기 시퀀스 수 레지스터의 내용만큼의 개수의 쓰기 전송 규칙 기술자의 시작번지로부터 해당하는 회차의 간격 값으로부터 캐쉬 존의 데이터를 요소 별로 재배열하여 해당하는 메모리 위치로 쓰는 제 4단계, 메모리 입출력 컨트롤러가 캐쉬 존의 쓰기 데이터 카운트 레지스터를 감소시키고, 감소 이벤트를 캐쉬 컨트롤러로 전달하어 제 2단계로 순환하게 하는 제5단계를 포함한다.
청구항 8에 관한 발명인 캐쉬 컨트롤러 장치의 프로그래밍 방법은, 청구항 1 내지 청구항 5 중 어느 한 항에 따른 캐쉬 컨트롤러 장치를 이용하여 순환 캐쉬 동작을 고려한 캐쉬 컨트롤러 장치의 프로그래밍 방법으로서, 프로그램에서 처리 순서대로 필요한 데이터 열 별로 읽기 기술자를 작성하는 제 1단계, 프로그램에서 처리 순서대로 출력되는 데이터 열 별로 쓰기 기술자를 작성하는 제 2단계, 프로그램에서 사용할 캐쉬 존의 위치 및 크기를 지정하는 제 3단계, 프로그램에서의 설정을 통하여 캐쉬의 동작을 순환 캐싱 동작으로 전환하는 제 4단계, 캐쉬 존에서의 메모리 위치를 참조하여 처리하는 제 5단계를 포함한다.
상기한 바와 같이, 본 발명에 따른 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법에 의하면, 주 처리장치에서 필요한 데이터 열을 캐쉬 존에 처리 순서에 맞게 재배열하여 공급해주고, 반대로 주 처리장치에서 발생하는 데이터의 쓰기 동작에서도 캐쉬 안에 있는 인접 메모리 블록에 쓰더라도, 백그라운드 처리에서 원래의 타겟 메모리로 끊김 없이 전달해 주는 것에 의하여, 종래의 캐쉬 컨트롤러의 동작인 비교적 간단한 규칙의 인접 메모리 데이터의 사전 패치가 야기할 수 있는 캐쉬 미스로 인한 패널티가 발생하지 않게 할 수 있다.
또한, 본 발명에 따르면, 특정한 블록의 프로그램을 수행할 때, 캐쉬 미스를 야기하지 않아 최적의 속도로 수행할 수 있다.
또한, 본 발명에 따르면, 연속 메모리의 데이터를 사전 패치하는 일반적인 캐쉬 방식을 사용하면서도, 일반적인 캐쉬 방식이 오히려 효율적이지 않는 특정한 경우의 프로그램 블록에서 필요한 데이터의 분포를 사전에 알고, 그 위치의 데이터만 효율적으로 캐쉬 메모리에 읽혀질 수 있도록 강제하는 기능을 추가하여 주는 것에 의하여, 특정 프로그램 블록에서의 효율적인 메모리 접근 처리 및 실행 싸이클의 효율을 개선할 수 있다.
이상과 같은 본 발명에 대한 해결하고자 하는 과제, 과제 해결 수단, 효과 외의 구체적인 사항들은 다음에 기재할 실시예 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. 다만, 첨부된 도면은 본 발명의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
도 1은 본 발명에 따는 캐쉬 컨트롤러 장치의 구성을 나타내는 블록도이고, 도 2는 본 발명에 따는 캐쉬 컨트롤러 장치의 메모리, 캐쉬 존간 데이터의 재배열 이동을 나타내는 블록도이며, 도 3은 본 발명에 따는 캐쉬 컨트롤러 장치의 전송 규칙 기술자 및 헤더의 필드 구성을 나타내는 블록도이고, 도 4는 본 발명에 따는 캐쉬 컨트롤러 장치의 읽기 동작에서의 데이터 동기 과정을 나타내는 블록도이며, 도 5는 본 발명에 따는 캐쉬 컨트롤러 장치의 쓰기 동작에서의 데이터 동기 과정을 나타내는 블록도이다.
도 1에 도시된 바와 같이, 본 발명에 따는 메모리(150)에 분포된 데이터를 주 처리장치(100)에 사전 패치(fetch)하여 공급하는 캐쉬(Cache) 컨트롤러 장치는, 캐쉬 존(130), 캐쉬 컨트롤러(120), 메모리 입출력 컨트롤러(140)를 포함한다.
캐쉬 존(130)은, 사이즈가 한정된 메모리 블록, 즉 유한한 사이즈를 가진 메모리 버퍼 블록으로서, 바람직하게는 캐쉬 컨트롤러(120)와 메모리 입출력 컨트롤러(140)에서 동시 접근 가능한 블록이다.
메모리 입출력 컨트롤러(140)는 캐쉬 존(130)으로 데이터를 사전 패치하거나, 캐쉬 존(130)으로부터 데이터를 메모리(150)로 전송하도록 제어한다. 즉, 읽기동작에서 전송 규칙 기술자에 기술된 순서대로의 데이터를 캐쉬 존(130)으로 복사한다. 이와 동시에 동시접근 가능한 캐쉬 컨트롤러(120)는 이전에 메모리 접근 장치에서 의해 복사된 데이터를 캐쉬 메모리(110)로 옮기거나, 캐쉬 메모리(110)에 쓰여진 데이터를 캐쉬 존(130)으로 옮기는 동작을 수행한다.
캐쉬 컨트롤러(120)는 바람직하게는 일반적인 캐쉬 동작 이외에 일정한 사이 즈를 가지고 순환적으로 접근하는 메모리 버퍼인 캐쉬 존(130)만을 접근하는 기능을 가진다. 캐쉬 컨트롤러(120)가 캐쉬 존(130)으로의 읽기 또는 쓰기 동작은 종래의 캐쉬 컨트롤러(120)가 수행하는 가장 간단한 동작인 1-way 캐쉬 메모리(110) 동작과 동일하게 연속적인 1차원 메모리 블록을 캐쉬 하는 것은 동일하나, 캐쉬 존(130)의 사이즈만큼 순환하여 접근한다. 따라서, 기존의 일반적인 캐쉬 컨트롤러(120)는 캐쉬 존(130) 보다 넓은 영역의 메모리 블록을 캐쉬하는 것이 특징이나, 본 발명의 캐쉬 컨트롤러(120)는 한정된 캐쉬 존(130) 영역만을 캐쉬하고, 이 캐쉬 존(130)에 들어온 데이터에 대해서는 주 처리장치(100)에서의 캐쉬 히트를 보장한다.
즉, 본 발명의 캐쉬 컨트롤러(120)는 읽기 동작에서 캐쉬 존(130)의 연속된 메모리 블록에 저장된 1차원의 데이터를 옮기지만, 이 캐쉬 존(130)으로 써지는 데이터 열은 프로그램에서 참조되어지는 순서대로 메모리 입출력 컨트롤러(140)에 의해서 메모리(150)에서 읽어져서 재배열되어 캐쉬 존(130)에 써지게 된다.
또한, 캐쉬 컨트롤러(120) 및 메모리 입출력 컨트롤러(140)는 캐쉬 메모리(110)의 데이터의 동기를 맞추기 위한 인터페이스(미도시)를 더 구비한다. 여기서, 인터페이스는 캐쉬 컨트롤러(120)와 메모리 입출력 컨트롤러(140)간 캐쉬 존(130)에 공유 가능한 읽기/쓰기 데이터 전송 카운터 레지스터(미도시)를 구비하는 것이 바람직하다. 여기서, 캐쉬 컨트롤러(120) 및 메모리 입출력 컨트롤러(140)는 캐쉬 존(130)에 구비된 읽기/쓰기 카운트 레지스터를 매개로 캐쉬 메모리(110) 및 캐쉬 존(130)에 대한 동기를 수행한다.
따라서, 상기와 같이 구성된 본 발명에 따른 캐쉬 컨트롤러 장치는, 순환적 접근을 위한 캐쉬 컨트롤러(120), 재배열을 위한 데이터의 공간인 캐쉬 맵, 캐쉬 맵과 메모리(150)간 데이터 시퀀스를 재 배열하면서 읽기 쓰기 하는 메모리 입출력 컨트롤러(140)를 포함하여, 한정된 영역의 연속 메모리 접근을 계속하는 반면 부가적인 메모리 입출력 컨트롤러(140)가 주 처리장치(100)의 실행 순서에 맞게 데이터를 재 배열 하여 읽거나 써줄 수 있다.
도 2에 도시된 바와 같이, 본 발명에 따는 캐쉬 컨트롤러 장치의 메모리, 캐쉬 존간 데이터의 재배열 이동에 대하여 설명하자면, 우선 메모리 입출력 컨트롤러는 캐쉬 존에 데이터를 복사하는데 있어 프로그램의 설정단계에서 미리 기술된 복수개의 데이터 시퀀스(200)의 항목 별로 프로그램에서 요구되어지는 순서 별로 전송 규칙 기술자의 인덱스 별로 재 배열(220)하여 캐쉬 존(210)에 복사한다. 여기서, 메모리 입출력 컨트롤러는 쓰기 동작에서 상기 캐쉬 존의 연속된 메모리 블록(210)에 저장된 1차원의 데이터는 프로그램에서 처리되어 출력되는 순서대로 저장된 데이터(220)지만, 이를 실제의 메모리에 옮기는 과정에서, 프로그램의 설정단계에서 미리 기술된 복수개의 데이터 시퀀스의 항목 별 전송 규칙 기술자의 인덱스 별로 재 배열하여 메모리(200)에 복사한다. 또한, 메모리 입출력 컨트롤러는 프로그램에서 필요한 데이터 열 시퀀스를 정의하는 헤더 영역과 데이터 열 시퀀스의 차원 별로 단위 전송규칙 기술자 군을 더 포함한다.
도 3에 도시된 바와 같이, 본 발명에 따는 캐쉬 컨트롤러 장치의 전송 규칙 기술자 및 헤더의 필드 구성을 설명하자면, 우선 헤더영역(300)은 읽기 데이터 시퀀스열의 개수를 정의하는 읽기 기술자 수 레지스터(301), 쓰기 데이터 시퀀스열의 개수를 정의하는 쓰기 기술자 수 레지스터(303), 읽기 전송 규칙 기술자중 시작기술자를 지시하는 읽기 기술자 ENTRY(302), 쓰기 전송 규칙 기술자중 시작기술자를 지시하는 쓰기 기술자 ENTRY(304)를 포함한다.
한편, 프로그램에서 요구되는 데이터열은 간단한 1차원의 단위 배열이 아니고, 각각 다른 메모리 영역에 분포된 여러 개의 시퀀스열을 참조하여야 한다. 메모리 입출력 컨트롤러는 단위 데이터 시퀀스 마다 전송규칙을 정의하는 전송 규칙 기술자 군(310)을 가진다. 각각의 단위 전송 규칙 기술자는 전송규칙 기술자 인덱스(311), 읽기 또는 쓰기 모드를 지정하는 방향 필드(312),다음 데이터 기술자의 인덱스를 지시하는 지시자 필드(313), 데이터 요소의 개수 필드(314), 데이터 시퀀스의 시작주소 필드(315), 데이터 시퀀스의 간격 필드(316)를 포함한다.
여기서, 각 단위 기술자의 필드는 읽기 동작에서는 도2의 소스 메모리 공간(200)의 배열 별로 요소 분포 규칙 및 캐쉬 존으로의 매핑 규칙을 정의한다. 도 2의 프로그램에서의 참조 순서(220)대로 첫번째 기술자 배열의 시작 데이터 요소가 캐쉬 존에 매핑 된 후, 다음의 데이터 요소는 해당 기술자가 지시하는 지시자 필드(313)의 인덱스를 가지는 다음 데이터 기술자에 해당하는 배열의 요소가 반복적으로 마지막 기술자에 이를 때까지 캐쉬 존에 매핑된다. 이렇게 한 행(row)의 데이터가 캐쉬 존에 매핑되고 나면, 두번째 열의 해당 데이터 요소들은 첫번째 기술 자로부터 시작하여 데이터 시퀀스의 시작주소 필드(315)로부터 데이터 시퀀스의 간격 필드(316)의 행(row) 배수만큼의 메모리 번지를 참조하여 반복적으로 마지막 기술자에 이를 때까지 캐쉬 존에 매핑됨을 반복한다.
쓰기 동작의 경우는 이와 반대로 열과 행이 트랜스포스(transpose)되는 형식으로 기술자에 의해 캐쉬 존에서 소스 메모리 공간으로의 매핑 된다. 이와 같은 과정을 통하여 본 발명에서 제시하는 메모리 입출력 컨트롤러는 전송규칙 기술자를 활용하여 프로그램에서 참조할 데이터 영역에 대한 정보를 줌으로써, 반드시 필요한 데이터를 참조될 순서대로 공급한다.
도 4에 도시된 바와 같이, 본 발명에 따는 캐쉬 컨트롤러 장치의 읽기 동작에서의 데이터 동기 과정을 설명하자면, 메모리 입출력 컨트롤러는 읽기동작에서 한 단위의 데이터 전송이 완료될 때(401)마다, 캐쉬 컨트롤러와 공유하는 읽기 데이터 카운터 레지스터에 인덱스 데이터를 증가(402)시키고, 캐쉬 컨트롤러에 읽기 데이터 카운터 레지스터 증가 이벤트(411)를 발생하게 한다. 이때, 캐쉬 컨트롤러는 이를 매개로 얼마만큼의 데이터를 캐쉬 존에서 캐쉬로 읽어 갈 수 있는 지를 파악할 수 있다. 또한, 캐쉬 컨트롤러는 캐쉬 존에서 데이터를 옮길 때(412) 마다 읽기 데이터 카운터를 감소시킨다(413). 이는 메모리 입출력 컨트롤러에서 읽기 데이터 카운트 레지스터의 감소 이벤트를 발생하게 하고(403), 메모리 입출력 컨트롤러는 새로운 데이터 시퀀스를 옮겨주게 된다.
도 5에 도시된 바와 같이, 본 발명에 따는 캐쉬 컨트롤러 장치의 쓰기 동작에서의 데이터 동기 과정을 설명하자면, 캐쉬 컨트롤러는 쓰기동작에서는 읽기의 순서와 반대로 캐쉬 메모리에서 캐쉬 존으로 데이터를 옮길 때(511)마다, 쓰기 데이터 카운트 레지스터의 값을 증가시킨다(512).
캐쉬 컨트롤러는 이에 따른 이벤트(501)에 활성화되어, 캐쉬 존에서 실제 메모리로 데이터를 옮기고(502), 전송 카운트 레지스터의 값을 감소시킨다(503). 캐쉬 컨트롤러는 전송 카운트 레지스터의 값의 감소이벤트(513)에 활성화 되어, 캐쉬 메모리에 들어온 새로운 데이터 시퀀스를 캐쉬 메모리에서 캐쉬 존으로 옮기게 한다.
한편, 본 발명에 따른 캐쉬 컨트롤러 장치의 캐쉬 컨트롤러, 캐쉬 맵 및 메모리 입출력 컨트롤러를 구비한 프로세서의 경우, 기존의 범용 캐쉬 또는 캐쉬없는 프로세서의 프로그래밍과는 다른 형식으로 작성 되어야 효과적으로 실행될 수 있다. 또한, 데이터 열을 참조하는 방법은 다르지 않지만, 캐쉬 맵에 들어오는 순서대로의 데이터 열을 참조하는 방식으로 바꾸어져야 하고, 실행 전에 기술자를 작성하고, 캐쉬의 동작을 설정하는 프로그램 요소가 추가 되어야 한다.
또한, 상기와 같은 본 발명에 따른 캐쉬 컨트롤러 장치에 제시한 구성은 구현상의 선택에 따라 단계가 간략화될 수 있다. 캐쉬 존과 캐쉬 메모리는 통합이 가능하며 캐쉬 컨트롤러 및 메모리 접근 장치 또한 하나의 장치로 구현이 가능하다. 이러한 구성일 때 메모리에서 캐쉬 존을 거쳐 캐쉬 메모리 혹은 역으로 캐쉬 메모리에서 캐쉬 존을 거쳐 메모리로 옮겨지는 데이터 경로는 캐쉬 메모리에서 메모리 혹은 역으로 메모리에서 캐쉬 메모리로 간략화될 수 있다.
도 6은 본 발명에 따는 캐쉬 컨트롤러 장치의 순환 캐쉬 동작을 고려한 프로그래밍 기법의 순서를 나타내는 순서도이고, 도 7은 본 발명에 따는 캐쉬 컨트롤러 장치의 선택적인 간략화 구현 구조를 나타내는 순서도이다.
도 6에 도시된 바와 같이, 본 발명에 따는 캐쉬 컨트롤러 장치의 순화 캐쉬동작을 고려한 프로그래밍 방법은, 순차적으로 프로그램에서 처리 순서대로 필요한 데이터 열 별로 읽기 기술자를 작성하는 단계(601), 프로그램에서 처리 순서대로 출력되는 데이터 열 별로 쓰기 기술자를 작성하는 단계(602), 프로그램에서 사용할 캐쉬 존의 위치 및 크기를 지정하는 단계(603), 프로그램에서의 설정을 통하여 캐쉬의 동작을 순환 캐싱 동작으로 전환하는 단계(604), 실제 데이터 위치가 아닌 캐쉬 존에서의 메모리 위치를 참조하여 처리하는 단계(605)를 포함한다. 이를 사용하면 프로그램에서 연속적인 메모리에 대한 캐쉬 히트가 이루어져 메모리 접근에서 효율적인 프로그래밍 구조로 최적화하는 것이 가능하게 된다.
도 7에 도시된 바와 같이, 본 발명의 다른 실시예에 따는 캐쉬 컨트롤러 장치의 선택적인 간략화 구현 구조를 나타내는 순서를 설명하자면, 캐쉬 메모리(710)는 캐쉬 존의 경로를 생략하고, 메모리(730)에서 직접 재배열한 데이터가 혹은 역으로 캐쉬 메모리(710)에서 직접 재배열된 데이터가 메모리(730)로 가는 형식의 데이터 경로 제어를 논리적 혹은 물리적으로 결합된 캐쉬 컨트롤러 및 메모리 입출력 컨트롤러(720)에 의해서 수행될 수도 있다. 상기와 같은 구현은, 본 발명에서 제시한 방법을 적용하는 또 다른 실시예에 해당된다.
따라서, 상기와 같은 본 발명에 따른 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법에 의하면, 주 처리장치의 읽기 데이터의 참조는 항상 주 처리장치가 필요한 순서대로의 데이터가 가장 빠른 캐쉬 메모리에 항상 준비되어 있어서, 메모리 입출력 장치의 싸이클이 늦지 않는 한 100%의 읽기 캐쉬 히트율을 유지할 수 있으며, 반대로 쓰기 동작의 경우 항상 연속된 메모리 블록인 캐쉬 존에 쓰기만 하므로 역시 100%의 쓰기 캐쉬 히트율을 유지할 수 있다. 또한, 실제적인 메모리 주소로의 접근은 캐쉬 컨트롤러가 아닌 메모리 입출력 장치에서 재 배치를 수행하게 되므로 주 처리장치의 수행부담을 줄일 수 있다.
이와 같이, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명에 따는 캐쉬 컨트롤러 장치의 구성을 나타내는 블록도.
도 2는 본 발명에 따는 캐쉬 컨트롤러 장치의 메모리, 캐쉬 존간 데이터의 재배열 이동을 나타내는 블록도.
도 3은 본 발명에 따는 캐쉬 컨트롤러 장치의 전송 규칙 기술자 및 헤더의 필드 구성을 나타내는 블록도.
도 4는 본 발명에 따는 캐쉬 컨트롤러 장치의 읽기 동작에서의 데이터 동기 과정을 나타내는 블록도.
도 5는 본 발명에 따는 캐쉬 컨트롤러 장치의 쓰기 동작에서의 데이터 동기 과정을 나타내는 블록도.
도 6은 본 발명에 따는 캐쉬 컨트롤러 장치의 순환 캐쉬 동작을 고려한 프로그래밍 기법의 순서를 나타내는 순서도.
도 7은 본 발명에 따는 캐쉬 컨트롤러 장치의 선택적인 간략화 구현 구조를 나타내는 순서도.

Claims (8)

  1. 메모리에 분포된 데이터를 주 처리장치에 사전 패치(fetch)하여 공급하는 캐쉬(Cache) 컨트롤러 장치로서,
    사이즈가 한정된 메모리 블록에 데이터를 임시저장하는 캐쉬 존;
    상기 사이즈가 한정된 메모리 블록으로부터 상기 데이터를 순환적(circular)으로 캐쉬 메모리에 읽어오거나, 상기 캐쉬 메모리로부터 상기 데이터를 상기 캐쉬 존에 이동시키는 캐쉬 컨트롤러; 및
    상기 캐쉬 존으로 상기 데이터를 사전 패치하거나, 상기 캐쉬 존으로부터 상기 데이터를 메모리로 전송하도록 제어하는 메모리 입출력 컨트롤러를 포함하고,
    상기 캐쉬 컨트롤러는,
    상기 주 처리장치의 실행에 의해 캐슁 동작에서 순환 캐슁 동작으로의 전환 또는 순환 캐슁동작에서 일반 캐슁 동작으로의 전환을 제어하는 모드 제어 레지스터;
    상기 주 처리장치의 실행으로 변경 가능한 순환 캐싱 동작에서 타겟으로 하는 블록의 크기를 정의하는 캐쉬 맵 사이즈 레지스터;
    상기 주 처리장치의 실행으로 변경 가능한 순환 캐싱 동작에서 타겟으로 하는 블록의 위치를 정의하는 캐쉬 맵 주소 레지스터;
    상기 캐쉬 존의 읽기 및 쓰기 데이터 카운트 레지스터를 통하여 상기 메모리 입출력 컨트롤러와의 동기를 위한 인터페이스; 및
    상기 순환 캐싱동작을 제어하는 제어 로직부를 포함하는, 캐쉬 컨트롤러 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 캐쉬 존은
    상기 캐쉬 컨트롤러 및 상기 메모리 입출력 컨트롤러로부터 접근 가능(Dual access)한 버퍼 메모리 블록을 포함하는,
    캐쉬 컨트롤러 장치.
  4. 제1항에 있어서,
    상기 메모리 입출력 컨트롤러는
    읽기 데이터 시퀀스 열의 개수를 정의하는 읽기 시퀀스 수 레지스터;
    쓰기 데이터 시퀀스 열의 개수를 정의하는 쓰기 시퀀스 수 레지스터;
    읽기 전송 규칙 기술자중 시작기술자를 지시하는 읽기 기술자 엔트리(ENTRY);
    쓰기 전송 규칙 기술자중 시작기술자를 지시하는 쓰기 기술자 엔트리(ENTRY);
    상기 읽기 데이터 시퀀스 또는 상기 쓰기 데이터 시퀀스의 각각의 전송규칙을 정의하는 전송 규칙 기술자 군; 및
    상기 읽기 및 쓰기 데이터 카운트 레지스터를 통하여 상기 캐쉬 컨트롤러와의 동기를 위한 인터페이스를 포함하는,
    캐쉬 컨트롤러 장치.
  5. 제4항에 있어서,
    상기 전송 규칙 기술자 군은
    전송규칙 기술자 인덱스;
    읽기 또는 쓰기 모드를 지정하는 방향 필드;
    다음 데이터 시퀀스의 인덱스를 지시하는 지시자 필드;
    데이터 시퀀스의 개수 필드;
    상기 데이터 시퀀스의 시작주소 필드; 및
    상기 데이터 시퀀스의 간격 필드를 포함하는,
    캐쉬 컨트롤러 장치.
  6. 제1항에 따른 캐쉬 컨트롤러 장치를 이용하여 상기 메모리에서 상기 캐쉬로 읽어가는 동작에서 상기 캐쉬 컨트롤러, 상기 메모리 입출력 컨트롤러 및 캐쉬 맵 존을 인터페이스 하는 캐쉬 컨트롤러 장치의 인터페이스 방법으로서,
    상기 메모리 입출력 컨트롤러가 읽기 시퀀스 수 레지스터의 내용만큼의 개수의 읽기 전송 규칙 기술자의 시작번지로부터 해당하는 회차의 간격 값으로부터 메모리 위치에서 데이터의 요소들을 재배열하여 상기 캐쉬 존으로 읽어오는 제 1단계;
    상기 메모리 입출력 컨트롤러가 상기 캐쉬 존의 읽기 데이터 카운트 레지스터를 증가시키고, 상기 증가 이벤트를 상기 캐쉬 컨트롤러로 전달하는 제2단계;
    상기 캐쉬 컨트롤러가 상기 캐쉬 존의 데이터를 상기 캐쉬 메모리로 전달하는 제3단계; 및
    상기 캐쉬 컨트롤러가 상기 읽기 및 쓰기 데이터 카운트 레지스터 중에서 읽기 데이터 카운트 레지스터의 값을 감소시키고, 상기 감소 이벤트를 상기 메모리 입출력 컨트롤러로 전달하어 상기 제1단계로 순환하게 하는 제4단계를 포함하는,
    캐쉬 컨트롤러 장치의 인터페이스 방법.
  7. 제1항에 따른 캐쉬 컨트롤러 장치를 이용하여 상기 캐쉬 메모리에서 상기 메모리로 쓰는 동작에서 상기 캐쉬 컨트롤러, 상기 메모리 입출력 컨트롤러 및 상기 캐쉬 존을 인터페이스 하는 캐쉬 컨트롤러 장치의 인터페이스 방법으로서,
    상기 주 처리장치에서 프로그램에 의해 데이터가 상기 캐쉬 메모리에 준비되는 제1단계;
    상기 캐쉬 컨트롤러가 상기 캐쉬 메모리에서 상기 캐쉬 존으로 데이터를 이동하는 제 2단계;
    상기 캐쉬 컨트롤러가 상기 캐쉬 존의 쓰기 데이터 카운트 레지스터를 증가시키고, 상기 증가 이벤트를 상기 메모리 입출력 컨트롤러로 전달하는 제 3단계;
    상기 메모리 입출력 컨트롤러가 쓰기 시퀀스 수 레지스터의 내용만큼의 개수의 쓰기 전송 규칙 기술자의 시작번지로부터 해당하는 회차의 간격 값으로부터 상기 캐쉬 존의 데이터를 요소 별로 재배열하여 해당하는 메모리 위치로 쓰는 제 4단계; 및
    상기 메모리 입출력 컨트롤러가 상기 캐쉬 존의 쓰기 데이터 카운트 레지스터를 감소시키고, 상기 감소 이벤트를 상기 캐쉬 컨트롤러로 전달하여 상기 제 2단계로 순환하게 하는 제5단계를 포함하는,
    캐쉬 컨트롤러 장치의 인터페이스 방법.
  8. 제1항에 따른 캐쉬 컨트롤러 장치를 이용하여 순환 캐쉬 동작을 고려한 캐쉬 컨트롤러 장치의 프로그래밍 방법으로서,
    프로그램에서 처리 순서대로 필요한 데이터 열 별로 읽기 기술자를 작성하는 제 1단계;
    상기 프로그램에서 처리 순서대로 출력되는 데이터 열 별로 쓰기 기술자를 작성하는 제 2단계;
    상기 프로그램에서 사용할 캐쉬 존의 위치 및 크기를 지정하는 제 3단계;
    상기 프로그램에서의 설정을 통하여 캐쉬의 동작을 순환 캐싱 동작으로 전환하는 제 4단계; 및
    상기 캐쉬 존에서의 메모리 위치를 참조하여 처리하는 제 5단계를 포함하는,
    캐쉬 컨트롤러 장치의 프로그래밍 방법.
KR1020090005849A 2009-01-23 2009-01-23 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법 KR100998929B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090005849A KR100998929B1 (ko) 2009-01-23 2009-01-23 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법
US12/651,918 US20100191918A1 (en) 2009-01-23 2010-01-04 Cache Controller Device, Interfacing Method and Programming Method Using the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090005849A KR100998929B1 (ko) 2009-01-23 2009-01-23 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법

Publications (2)

Publication Number Publication Date
KR20100086571A KR20100086571A (ko) 2010-08-02
KR100998929B1 true KR100998929B1 (ko) 2010-12-09

Family

ID=42355081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090005849A KR100998929B1 (ko) 2009-01-23 2009-01-23 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법

Country Status (2)

Country Link
US (1) US20100191918A1 (ko)
KR (1) KR100998929B1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5754273B2 (ja) * 2011-07-11 2015-07-29 株式会社リコー メモリ制御装置、情報処理装置およびメモリ制御方法
US10229043B2 (en) 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US11113054B2 (en) 2013-09-10 2021-09-07 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression
US9430390B2 (en) 2013-09-21 2016-08-30 Oracle International Corporation Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications
JP6119533B2 (ja) * 2013-09-27 2017-04-26 富士通株式会社 ストレージ装置,ステージング制御方法及びステージング制御プログラム
US10032246B2 (en) * 2013-10-09 2018-07-24 Nvidia Corporation Approach to caching decoded texture data with variable dimensions
US9710381B2 (en) * 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
US10025823B2 (en) 2015-05-29 2018-07-17 Oracle International Corporation Techniques for evaluating query predicates during in-memory table scans
US10067954B2 (en) 2015-07-22 2018-09-04 Oracle International Corporation Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
KR102490104B1 (ko) * 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3305693A1 (de) * 1983-02-18 1984-08-30 Nixdorf Computer Ag Schaltungsanordnung zur zwischenspeicherung von befehlsworten
CA2045798A1 (en) * 1990-06-29 1991-12-30 Rebecca L. Stamm Conversion of internal processor register commands to i/o space addresses
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5623608A (en) * 1994-11-14 1997-04-22 International Business Machines Corporation Method and apparatus for adaptive circular predictive buffer management
US5854921A (en) * 1995-08-31 1998-12-29 Advanced Micro Devices, Inc. Stride-based data address prediction structure
JP3639424B2 (ja) * 1998-01-30 2005-04-20 三洋電機株式会社 アドレス発生回路
US6145016A (en) * 1998-09-03 2000-11-07 Advanced Micro Devices, Inc. System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US7290089B2 (en) * 2002-10-15 2007-10-30 Stmicroelectronics, Inc. Executing cache instructions in an increased latency mode
US7519772B2 (en) * 2003-12-02 2009-04-14 Silverbrook Research Pty Ltd Method of updating IC cache
US7487296B1 (en) * 2004-02-19 2009-02-03 Sun Microsystems, Inc. Multi-stride prefetcher with a recurring prefetch table
US7337273B2 (en) * 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US7840761B2 (en) * 2005-04-01 2010-11-23 Stmicroelectronics, Inc. Apparatus and method for supporting execution of prefetch threads

Also Published As

Publication number Publication date
KR20100086571A (ko) 2010-08-02
US20100191918A1 (en) 2010-07-29

Similar Documents

Publication Publication Date Title
KR100998929B1 (ko) 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법
US8386714B2 (en) Reducing write amplification in a cache with flash memory used as a write cache
CN100407169C (zh) 为dma控制器提供高速缓存管理命令的系统和方法
US5423048A (en) Branch target tagging
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
US9990299B2 (en) Cache system and method
JP2007207248A (ja) 複数のキャッシュ・ミス後の命令リスト順序付けのための方法
US9569219B2 (en) Low-miss-rate and low-miss-penalty cache system and method
WO2021091649A1 (en) Super-thread processor
KR20110101994A (ko) 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
US9946546B2 (en) Processor and instruction code generation device
JP3850375B2 (ja) Armプロセッサのためのメモリアクセラレータ
JPWO2014068694A1 (ja) 半導体装置及びキャッシュメモリへのデータ先読み方法
EP3588312A1 (en) Apparatus, method, and system for enhanced data prefetching based on non-uniform memory access (numa) characteristics
US7493447B2 (en) System and method for caching sequential programs
KR20110050665A (ko) 정지가능하고 재시작가능한 dma 엔진
US9043557B1 (en) Heterogeneous memory system
US10120819B2 (en) System and method for cache memory line fill using interrupt indication
US20220229662A1 (en) Super-thread processor
KR101376884B1 (ko) 프로그램 명령어 프리페치 제어 장치 및 그 방법
JP2008015668A (ja) タスク管理装置
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
TW202029200A (zh) 電子裝置及電子裝置的管理方法
KR950010939B1 (ko) 명령어 프리페치장치
TW202113609A (zh) 調整預提取操作的方法、用於管理用於將資料自儲存裝置轉移至預提取讀取前緩衝器的預提取操作的系統以及實施於用於管理用於將資料自儲存裝置轉移至預提取讀取前緩衝器的預提取操作的系統上的非暫時性電腦可讀媒體

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee