KR19980032100A - 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드 - Google Patents

캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드 Download PDF

Info

Publication number
KR19980032100A
KR19980032100A KR1019970016964A KR19970016964A KR19980032100A KR 19980032100 A KR19980032100 A KR 19980032100A KR 1019970016964 A KR1019970016964 A KR 1019970016964A KR 19970016964 A KR19970016964 A KR 19970016964A KR 19980032100 A KR19980032100 A KR 19980032100A
Authority
KR
South Korea
Prior art keywords
memory
address
cache
scratch pad
data
Prior art date
Application number
KR1019970016964A
Other languages
English (en)
Other versions
KR100257518B1 (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 윤종용
Publication of KR19980032100A publication Critical patent/KR19980032100A/ko
Application granted granted Critical
Publication of KR100257518B1 publication Critical patent/KR100257518B1/ko

Links

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/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
    • 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/12Replacement 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/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • 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/601Reconfiguration of cache memory

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

캐쉬 시스템은 캐쉬 슬라이스로서 수행되는 리사이즈가 가능한(resizable) 소프트웨어에 의해 조작되는 고속 스크래치 패드를 지원한다. 프로세서 레지스터는 스트레치 패드의 사이즈와 베이스 어드레스를 나타낸다. 스크래치 패드를 이용하는 명령은 외부 메모리로부터 멀티플 라인을 스크래치 패드로 로드하는 프리페치명령과 스크래치 패드로부터의 데이터의 멀티플 라인을 외부 메모리로 기입하기 위한 라이트백 명령을 기입한다. 프리페치와 라이트백 명령은 논-블록킹명령으로서 프리페치 또는 라이트백 동작동안, 프로그램 명령에 이은 명령이 실행되도록 한다.

Description

캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
본 발명은 고속 메모리 억세스를 갖는 프로세서를 제공하는 시스템 및 방법에 관한 것으로서, 보다 상세하게는, 본 발명은 캐쉬 및 스크래치 패드 메모리 시스템에 관한 것이다.
프로세서들은 대부분 프로세서의 클럭속도와 비교하여 볼 때, 상대적으로 저 속의 메모리들을 사용한다. 그러한 프로세서들의 메모리 억세스 속도를 상승시키기 위하여, 상대적으로 작은 양의 고속 메모리가 데이터 캐쉬 또는 스크래치 패드에 사용될 수 있다. 스크래치 패드는 전형적으로 프로세서의 어드레스 공간의 일부분은 차지하고, 그 프로세서에 의해 실행될 프로그램들은 스크래치 패드를 억세스하여 고속 메모리 억세스를 이용한다. 스크래치 패드는 스크래치 패드에 대응하는 어드레스 공간의 상대적으로 작은 부분에 대한 메모리 억세스시간을 개선시키는 것만이 불리하다.
캐쉬는 메모리 억세스를 조정하고 캐쉬가 어드레스 공간에 비하여 상대적으로 작더라도 모든 어드레스 공간 또는 커다란 부분에 대한 평균 메모리억세스시간을 개선시킬 수 있다. 캐쉬는 프로세서의 특정 어드레스 공간을 차지하지 않지만, 대신 캐쉬라인의 정보용 어드레스를 식별하는 태그정보를 구비한다. 전형적으로, 캐쉬는 프로세서로부터의 어드레스를 태그정보와 비교하여 캐쉬가 억세스되는 메모리 억세스용 유효 엔트리가 포함되었는가를 결정한다. 만약 그러한 엔트리가 존재하면(즉, 캐쉬 히트가 있다면), 프로세서는 고속 캐쉬 메모리를 억세스(고속 캐쉬 메모리로부터 독출 또는 고속 캐쉬메모리로의 기입)한다. 태그정보외에 캐쉬 엔트리는 전형적으로 각각 엔트리의 관련된 정보가 유효한가 그리고 관련된 정보가 저속 메모리로 라이트백될 변화를 포함하는 가를 나타내는 타당성 비트와 오염 비트를 포함한다. 억세스되는 어드레스용 캐쉬 엔트리가 없다면(캐쉬미스(miss)가 있는 경우), 저속 메모리로의 억세스는 캐쉬가 방금 억세스된 메모리 어드레스용 새로운 엔트리를 창조하는 것이 요구되어질 것이다. 캐쉬는 종전 엔트리를 새로운 엔트리로 대치시킬 것인가를 결정하기 위하여 가장 최근 사용된 교체와 같은 구조를 사용한다. 전형적으로, 프로그램은 동일 어드레스를 반복적으로 억세스하여 가장 최근 억세스된 데이터가 바로 다시 억세스되어 필요할 때 캐쉬에서 이용되도록 한다. 따라서, 캐쉬는 프로세서의 어드레스공간을 통해 억세스시간을 개선할 수 있지만, 히트/미스 계산용 오버헤드, 엔트리생성 및 라이트백은 스크래치패드보다 캐쉬를 저속으로 만들 수 있다.
본 발명은 고속 스크래치 패드 메모리 및 캐쉬 슬라이스로서 수행되는 리사이즈가 가능한(resizable) 소프트웨어에 의해 조작되는 고속 스크래치 패드를 지원하는 캐쉬 시스템을 제공하는 데 있다.
도 1 은 어드레스공간에서 다른 장소에 재위치될 수 있는 리사이즈가능한 스크래치 패드를 설명하는 도면.
도 2 는 본 발명의 실시예에 따른 프로세서의 블록도.
도 3 은 도 2 의 프로세서의 캐쉬 서브 시스템의 일부분을 나타낸 블록도.
도 4 는 본 발명의 실시예에 따른 프리페치동작 또는 라이트백 동작의 실행동안 로드/저장 실행큐를 설명하기 위한 도면.
도 5 는 본 발명의 실시예에 따른 프로그램 아키텍쳐를 설명하기 위한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
110 : 고속 메모리120 : 캐쉬 메모리
130 : 스크래치 패드150 : 어드레스 공간
160, 170 : 어드레스200 : 멀티 프로세서
210 : 범용 프로세서220 : 벡터 프로세서
212, 214, 216 : 직접라인218 : 확장 레지스터
230 : 캐쉬 서브시스템240, 250 : 시스템버스
262, 266 : 명령 캐쉬264, 268 : 데이터 캐쉬
270 : 롬 캐쉬280 : 제어회로
310 : 데이터 파이프라인320 : 어드레스 파이프라인
330 : 태그 메모리340 : 멀티플렉서
360 : SRAM362, 364, 366, 368 : 메모리 섹션
본 발명의 실시예에 따른 프로세서는 캐쉬 및/또는 스크래치 패드용으로 배치될 수 있는 고속 메모리를 사용한다. 스크래치 패드가 인에이블될 때, 스크래치 패드는 프로세서의 어드레스공간중 사용자가 선택할 수 있는 부분을 차지하고, 동일 어드레스를 갖는 저속 메모리 대신 억세스된다. 사용자는 고정된 사이즈의 스크래치 패드에 프로그램을 적용시키기 보다는 규정된 프로그램의 필요조건에 따라 스크래치 패드와 캐쉬의 크기를 선택할 수 있다.
전형적인 실시예에서, 프로세서는 캐쉬 및/또는 스크래치 패드로서 사용을 위해 배열가능한 온칩 메모리를 구비하고, 프로세서는 스크래치패드 동작을 위한 규정된 명령을 수행한다. 이러한 스크래치 패드명령중 일부분은 스크래치 패드와 외부 메모리간의 정보를 전송한다. 본 발명의 일실시예에 따른 스크래치 패드명령은 각각 스크래치 패드와 외부 메모리의 저장위치를 식별하는 제 1 및 제 2 필드를 구비한다. 본 발명의 다른 실시예에 따른 스크래치패드 명령은 사용자가 배치할 수 있는 베이스 어드레스를 갖으며, 스크래치 패드명령은 스크래치 패드의 저장위치 그리고 스크래치패드를 위해 사용된 동일 어드레스에서 외부 메모리의 저장위치를 식별하는 하나의 필드를 구비한다. 스크래치 패드명령은 외부 메모리와 스크래치 패드간의 하나 또는 멀티플 데이터 라인을 전송한다. 라인 사이즈는 온칩 메모리가 캐쉬로서 배치될 때 사용된 캐쉬 라인을 매치시키기 위해 선택될 수 있다.
스크래치 패드명령은 완료될 때까지 많은 사이클이 소요되지만 논블럭킹이므로, 이전의 스크래치패드 명령에 종속되지 않는 명령이 프로세서의 자원을 보다 효율적으로 사용하기 위하여 정상 프로그램 순서를 벗어나 실행될 수 있다. 그러므로, 스크래치 패드명령에 이은 명령 또는 스크래치 패드명령과 혼합된 명령이 스크래치패드명령에 의해 영향받지 않은 데이터를 처리하는 반면에, 프로그램은 하나 또는 그이상의 스크래치 패드 명령을 사용하여 데이터를 스크래치 패드로 프리페치한다. 일단 프로그램이 한블럭의 데이터 처리를 종료되면, 처리된 데이터는 스크래치패드 전송명령을 사용하여 외부 메모리에 저장할 수 있지만, 다른 데이터의 처리는 정상 프로그램순서를 벗어나 계속된다.
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
도 1 의 본 발명의 실시예에 따르면, 캐쉬 시스템은 캐쉬 메모리(120) 및/또는 스크래치 패드(130)으로서의 사용을 위해 배치될 수 있는 고속 메모리(110)를 구비한다. 예를 들면, 메모리(100)는 전체가 캐쉬메모리(110)로서, 전체가 스크래치 패드메모리로서, 또는 캐쉬로서 부분적으로 그리고 스크래치 패드로서 부분적으로 배치될 수 있다. 스크래치패드가 있을 때, 스크래치패드(130)는 프로세서의 어드레스공간(150)의 일부분을 차지하고, 동일 어드레스를 갖는 외부 메모리 대신 억세스된다. 게다가, 스크래치 패드 메모리(130)에 할당된 어드레스가 프로그램의 필요에 따라 선택될 수 있다. 스크래치 패드 메모리(130)는 값(A1)과 (A2)사이의 어드레스(170)를 차지하고, 나중에 값(B1)과 (B2)사이의 어드레스(160)로 이동한다. 사용자는 고정된 위치의 고정된 사이즈의 스크래치 패드에 프로그램을 적용하기 보다는 규정된 프로그램의 필요조건에 따라 스크래치 패드(130)와 캐쉬(120)의 크기 및 위치를 선택할 수 있다.
본 발명의 다른 특징에 의하면, 캐쉬 시스템은 스크래치 패드동작을 위해 규정된 명령을 수행하는 프로세서의 내부에 있다. 이러한 명령의 일부분은 스크래치 패드와 프로세서용 외부 메모리사이의 정보를 전송한다. 부가적인 명령은 데이터 캐쉬의 캐쉬라인을 프리페치하거나 또는 라이트백한다.
도 2 는 본 발명의 실시예에 따른 멀티프로세서(200)의 전형적인 실시예의 블록도를 도시한 것이다. 멀티프로세서(200)는 범용 프로세서(210)와 벡터 프로세서(220)를 구비한 집적회로이다. 프로세서(210)와 (220)는 직접 라인(212, 214, 216) 또는 프로세서(210, 220)가 공유하는 확장 레지스터(218)를 통해 서로 통신한다. 프로세서(210, 220)는 프로세서용 명령 캐쉬(262)와 데이터 캐쉬(264) 그리고 벡터 프로세서용(220)용 명령캐쉬(266)와 데이터 캐쉬/스크래치 패드(268)를 포함하는 캐쉬서브 시스템(230)을 통해 다른 온칩 컨퍼넌트에 연결된다. 캐쉬서브 시스템은 롬캐쉬(270)와 제어회로(260)를 구비한다.
캐쉬서브 시스템(230)은 프로세서(210), (220)를 2개의 시스템 버스(240, 250)에 연결하고 프로세서(210, 220) 및 버스(240, 250)에 연결된 소자용 교체국으로서 동작한다. 상기 연관된 미국특허출원 NO.08/697,102 는 교체국으로서 캐쉬 서브시스템의 동작을 좀더 설명한다. 때때로 여기서는 FBUS(250)로서 간주되는 시스템 버스(250)는 버스(240)보다는 고속 클럭주파수에서 동작하고, 소자 인터페이스(252), DMA(direct memory access) 콘트롤러(254), 호스트 인터페이스(256) 및 메모리 콘트롤러(258)와 같은 고속소자에 연결된다. 메모리 콘트롤러(258), 호스트 인터페이스(256) 및 소자 인터페이스(252)는 외부 메모리, 호스트 컴퓨터 및 다양한 아날로그-디지탈 변환기와 디지탈-아날로그 변환기용 인터페이스를 제공한다. DMA 콘트롤러(254)는 외부 메모리와 소자 인터페이스(252)에 연결된 코텍(codec)간의 DMA동작을 제어한다. 때때로 여기서 IOBUS(240)로 간주되는 시스템버스(240)는 시스템 타이머(242), UART(universal asynchronous receiver transceiver) (244), 비트스트림 프로세서(246) 및 인터럽트 콘트롤러(248)과 같은 저속 소자에 연결된다.
프로세서(210), (220)는 프로그램 스레드를 실행하고 특별한 태스크의 좀더 효과적인 실행과는 구조적으로 다르다. 본 발명의 예시적인 실시예에서, 프로세서(210)는 advance RISC Machines Ltd 로부터 이용가능한 ARM7DM 데이터 시트, 문서 번호 ARM DDI 0010G 에 기재된 ARM 아키텍쳐 및 명령세트를 수행하고, 벡터 프로세서(220)는 미국특허출원 No.08/699,597 에 기재된 명령세트를 수행한다. 프로세서(210)는 실시간 운영체계, 두 프로세서(210, 220)용 예외루틴 및 다수의 반복계산을 필요로 하지 않는 범용 처리를 실행한다. 프로세서(210)는 역시 벡터 프로세서(220)의 초기화, 시작 및 정지를 제어한다. 벡터 프로세서(220)는 멀티미디어 프로세싱에서 공통이 되는 커다란 데이터 블록상의 반복적인 동작을 포함하는 수처리(number crunching)를 수행한다. 본 발명의 특징에 따르면, 벡터 프로세서(200)에 의해 실행된 프로그램은 캐쉬/스크래치 패드(268)를 배열하여, 스크래치패드를 포함하여 스크래치패드로 처리될 모든 데이터 또는 데이터의 일부분을 로드한다. 벡터 프로세서(220)는 데이터 캐쉬/스크래치 패드(268)가 고속 메모리를 포함하고 스크래치 패드는 캐쉬동작용 오버헤드에 의해 저속화되지 않기 때문에 스크래치 패드에서 데이터를 빠르게 억세스할 수 있다.
도 3 은 캐쉬 서브 시스템(230)의 실시예의 블록도이다. 본 실시예에서, 캐쉬 서브시스템(220)은 제어회로(280), 데이터 파이프라인(310), 어드레스 파이프라인(320), 태그 메모리(330) 및 에스램(SRAM) (360)을 구비한 직접 매핑된 캐쉬이다. 에스램(360)은 프로세서(210)용 명령캐쉬(262)와 데이터 캐쉬(264)과 벡터 프로세서(220)용 명령캐쉬(266) 및 데이터 캐쉬/스크래치 패드(268)에 관련된 4개의 메모리섹션(362, 364, 366, 368)로 분할된다. 본 발명의 예시적인 실시예에서, 에스램(360)은 64-바이트 캐쉬 라인을 제공하도록 조직되고, 각 메모리섹션(362, 364, 366)은 16개의 캐쉬라인 또는 1KB(kilobyte)의 정보저장영역을 포함한다. 메모리섹션(368)은 64개의 64-바이트 캐쉬 라인 또는 4KB 의 스크래치 패드메모리를 위한 4KB 의 크기이다. 에스램(360)은 동시에 에스램(360)의 독출 및 기입을 허용하는 독출 포트(312)와 기입포트(311)를 갖는 듀얼 포트이다. 예시적인 실시예에서, 각 독출포트(312)와 기입포트(311)는 각각 256 비트(32바이트) 데이터 포트이다.
캐쉬로서 에스램(360)의 사용을 위해, 캐쉬(262, 264, 266, 268)용 태그정보비트를 포함한 태그 메모리(330)는 각각 메모리섹션(362, 364, 366, 368)용 섹션(332, 334, 336, 338)을 구비한다. 각 캐쉬라인용 태그정보는 태그, 2 타당성비트, 2 더티비트 및 사용정보를 포함한다. 각 타당성비트와 더티비트는 단일의 독출 및 기입동작에 의해 전송된 데이터양과 동일한 32바이트의 1/2 캐쉬라인에 대응한다. 각 더티비트는 외부메모리로의 단일의 256비트 기입을 나타내고, 각 타당성 비트는 외부 메모리로부터의 단일의 256 비트 독출을 나타낸다. 사용된 비트는 새로운 엔트리를 발생하기 위하여 사용된 엔트리 대체구조용이다.
어드레스버스(323)을 통해 프로세서(210), 데이터 어드레스버스(324) 및 명령 어드레스버스(325)를 통해 벡터 프로세서(220), IOBUS(240) 및 FBUS(250)에 연결된 어드레스 파이프라인(320)은 히트/미스 계산용 태그메모리(330)에 어드레스를 제공한다. 두 어드레스, 독출 어드레스와 기입 어드레스는 동시에 태크 메모리(330)에 제공될 수 있다. 어드레스 파이프라인(320)으로부터 각 어드레스에 대해, 히드/미스계산 로직(335)는 어드레스(독출 어드레스 또는 기입 어드레스)로부터 색인(독출색인 또는 기입색인)을 추출하여 섹션(332, 334, 336, 또는 338)의 태그값을 식별한다. 사용된 태그메모리(330)의 각 섹션은 어드레스의 소오스에 관계한다. 히트/미스 계산로직(335)는 식별된 태그값을 어드레스의 최상위비트와 비교하여 관련된 데이터 캐쉬(262, 264, 266, 268)이 어드레스에 대응하는 엔트리를 포함하는지를 결정한다.
독출 어드레스용 히트가 있으면, 태그 메모리(330)는 독출 색인을 멀티플렉서(340)의 입력단자에 제공한다. 독출색인은 독출어드레스와 관련된 캐쉬라인에서 에스램(360)의 데이터를 식별한다. 멀티플렉서(340)는 어드레스 파이프라인의 제어하에, 독출색인을 에스램(360)에 제공하고, 관련된 캐쉬라인으로부터 데이터는 독출 포트(312)와 데이터 파이프라인(310)을 통해 이용가능하다. 어드레스 파이프라인(320)은 캐쉬 라인내의 오프셋으로부터 요구된 데이터를 식별하는, 어드레스 신호의 최하위 6비트로부터 얻어진 신호(LINE)를 제공한다. 독출 어드레스용 캐쉬미스가 있다면, 외부 메모리에 대한 억세스가 요구된다. 새로운 엔트리가 소오스(프로세서(210), (220))와 독출 어드레스신호의 타입(데이타 또는 명령)에 대응하는 태그 메모리(330)의 섹션(332, 334, 336, 338)에서 생성된다. IOBUS(240) 또는 FBUS(250)로부터 어드레스용 엔트리는 발생되지 않는다.
기입 어드레스용 히트가 있다면, 태그 메모리(330)는 멀티플렉서(345)를 통해 에스램(360)으로 기입색인을 보낸다. 다음 데이터 파이프라인(310)으로부터 데이터는 기입포트(311)을 통해 에스램(360)에 기입될 수 있으며, 타당성비트는 세트되어 관련된 캐쉬라인이 더티임을 나타낸다. 프로세서(210), (220)으로부터 기입 어드레스용 캐쉬미스가 있다면, 새로운 엔트리는 데이터가 에스램(360)에 기입되기전에 생성된다. 엔트리는 어드레스 신호의 소오스(프로세서(210),(220))에 대응하는 태그 메모리(320)의 섹션(334, 338)에서 생성된다.
본 발명의 특징에 따르면, 메모리섹션(368)의 어느 것도 스크래치패드(350)로서 배치되지 않거나, 또는 일부분 또는 모두가 배치될 수도 있다. 본 발명의 예시적인 실시예에서, 확장 레지스터(218)는 스크래치 패드(350)의 배치를 위한 레지스터 SPREG 를 구비한다. SPREG 레지스터에서, 2비트 필드 SPSIZE 는 스크래치 패드(350)용 0, 1, 2 또는 4KB 중 하나의 사이즈를 나타내고, 필드 SPBASE는 스크래치 패드(350)용 베이스 어드레스를 나타낸다(특별히 필드 SPBASE 는 프로세서(200)용 베이스 어드레스로부터의 오프셋을 나타낸다). 어드레스 파이프라인(320)은 입력 독출 및 기입 어드레스를 스크래치패드(350)용 베이스 어드레스와 비교하여 입력 어드레스가 스크래치 패드(350)의 데이터에 대응하는 가를 결정한다. 어드레스가 스크래치 패드(350)에 대응하면, 히트/미스 계산이 요구되지 않고, 어드레스 파이프라인(320)은 입력 어드레스로부터 스크래치 패드(SP) 독출 색인 또는 스크래치 패드(SP) 기입 색인을 추출한다. 멀티플렉서(340), (345)는 SP 독출 색인 및 SP 기입색인을 에스램(360)으로 보낸다. 가변캐쉬 및 스크래치 패드사이즈를 수행하기 위하여, 메모리섹션(268)은 태그정보(338)에 관련된 서브섹션을 갖는 4개의 1KB 의 서브섹션을 포함한다. 필드 SPSIZE 는 메모리섹션(268)의 서브섹션중 0, 1, 2, 또는 모두 4개의 서브섹션이 스크래치 패드(350)용으로 예약되었는가를 나타낸다. 태그값과 색인을 위해 사용된 어드레스 비트수는 캐쉬메모리의 사이즈에 따라 조정한다. 히트/미스 계산로직(335)의 섹션은 스크래치 패드(350)에 할당된 메모리섹션(268)의 모든 섹션(338) (만약 있다면)을 디스에이블시키고, 태그 엔트리의 생성이 벡터 데이터 캐쉬(355)에 관련된 태그정보(만약 있다면)의 서브섹션에 대해 제한된다. 따라서, 고속 억세스는 캐쉬동작의 오버헤드없이 온쳅메모리에 제공된다.
벡터 프로세서(220)는 스크래치 패드(350)의 효율적인 사용을 이용하는 특정명령을 수행한다. 부록은 본 발명의 예시적인 실시예에서 사용된 프리페치 및 라이트백 명령에 대해 설명되어졌다. 프리페치명령은 외부 메모리로부터 스크래치 패드로 데이터를 복사한다. 스크래치 패드(350)의 데이터는 외부 메모리의 데이터보다 훨씬 빠르게 억세스되고 벡터 데이터 캐쉬(355)의 데이터보다 훨씬 더 빠르게 억세스될 수 있는데, 이는 외부 메모리에 대한 저속 억세스가 요구되지 않게 때문이다. 따라서, 스크래치 패드(350)의 데이터는 외부메모리에 데이터가 유지되어 있고 캐쉬를 통해 억세스되는 경우보다 빠르게 처리될 수 있다. 라이트백명령은 스크래치 패드(350)로부터 외부 메모리로 데이터를 라이트백하고 벡터 프로세서(220)가 데이터 블록의 프로세싱을 종료하였을 때 사용되어질 수 있다.
본 발명의 다른 특징에 의하면, 각 프리페치 또는 라이트백명령은 멀티플 데이터 라인을 이동시킨다. 따라서, 커다란 데이터 블록의 이동은 상대적으로 작은 프리페치 또는 라이트백 명령의 실행을 필요로 하지만, 각 명령은 종료를 위해 많은 클럭 사이클이 소요된다. 예를 들면, 본 발명의 예시적인 실시예에서, 명령 VPFTCHSP.x 은 x 데이터 라인을 이동시킨다. 여기서, x 는 1, 2, 4, 또는 8이며, 각 라인은 64 바이트를 포함한다. 기입 포트(311)는 32바이트(256비트) 포트로서 에스램(360)으로의 적어도 2번의 기입이 이동된 한 라인당 요구된다. 따라서, 적어도 16번의 기입이 하나의 명령 VPFTCHSP.8 을 종료하는데 요구되고, 각 기입은 외부 메모리로부터의 필요한 데이터를 억세스하기 위해 멀티플 클럭 싸이클이 요구된다.
프리페치 및 라이트백 명령은 두 개의 교호하는(alternate) 명령포맷을 사용하여 수행된다. 제 1 명령포맷은 하나는 스크래치 패드(350)의 어드레스를 나타내고, 다른 하나는 외부 메모리의 어드레스를 나타내는 2개의 유효 어드레스를 나타낸다.
스크래치 패드(350)용 유효 어드레스는 스크래치 패드(350)의 베이스 어드레스로부터의 오프셋인 색인에 의해 나타낸다. 제 2 유효 어드레스는 외부 메모리에 대응하고 명령구문내의 이용가능한 어드레싱 구조중 어느 것을 사용한다.
제 2 명령포맷은 두 개의 저장영역위치, 하나는 스크래치 패드(350)의 저장영역위치 다른 하나는 외부 메모리의 저장영역위치를 식별하는 단일의 유효 어드레스를 사용한다. 레지스터(SPREG)의 필드(SPBASE)는 스크래치 패드(350)의 베이스 어드레스를 나타내고, 외부 메모리의 어드레스에 대응되도록 세트되어 스크래치패드(350)의 어드레스가 외부 메모리의 어드레스에 1 대 1 대등되도록 할 수 있다. 이것이 발생할 때, 정상 독출 및 기입 동작은 저속 외부 메모리대신에 스크래치 패드를 억세스하여 스크래치 패드(350)는 효과적으로 외부 메모리의 섹션을 대체시킨다. 제 2 명령포맷을 사용한 프리페치 및 라이트백 명령은 스크래치 패드(350)의 저장영역위치와 외부 메모리의 대응하는 대치된 저장영역위치사이의 데이터를 이동시킨다.
본 발명의 다른 특징에 의하면, 프리페치 및 라이트백 명령은 벡터 프로세서(220)가 그러한 명령을 종료하는 동안 정지를 피하거나 감소시키기 위하여 논블럭킹한다. 특히, 프로그램 순서에 따라 프리페치 또는 라이트백 명령후 들어오는 명령은 발행되고, 실행되며 종속성이 없는 한 무질서하게 종료될 수 있다.
도 4 는 벡터 프로세서(229)의 로드 및 저장명령을 실행하는 로드/저장 유닛용 실행큐(queue)(400)의 블록도를 도시한 것이다. 큐(400)는 멀티플 엔트리(401)부터 (406)을 포함한다. 벡터 프로세서(220)가 멀티플 라인 프리페치 또는 라이트백을 디코드할 때, 멀티플 개별 엔트리는 큐(400)에서 생성된다. 도 4 에서, 4개의 캐쉬라인 프리페치 또는 라이트백 동작은 큐 엔트리(401-404)에 도시된 바와같은 네 개의 동작 OP_A, OP_B, OP_C, OP_D 을 생성한다. 각 OP_A, OP_B, OP_C, OP_D 는 하나의 데이터라인을 전송한다. 이러한 동작들은 모두 증가하고 스크래치 패드(350)를 어게스하기 위한 동일 색인을 사용하기 때문에, 서로 종속된다. 프리페치나 라이트백동작에 이은 다른 동작은 큐(400)로 로드될 수 있다. 예를 들면, 로드동작과 저장동작은 각각 엔트리(405)와 (406)로 로드된다. 큐(400)에서 동작을 위해 필드값의 비교는 임의 피연산자 의존 또는 리소오스 분쟁이 존재하는가를 나타내지만, 분쟁이나 의존이 존재하지 않는 경우 명령은 정상 프로그램 순서를 벗어나 실행될 수 있다. OP_A, OP_B, OP_C, OP_D 는 OP_A, OP_B, OP_C, OP_D 중 어느 하나 또는 모두가 종료되기전 의존이 없었다면, 엔트리(405)의 로드동작 선택 및 완료 그리고/또는 엔트리(406)의 저장동작을 허용하는 논블럭킹이다.
도 5 는 비디오 인코딩 및 비디오 디코딩과 같은 응용을 위한 데이터블럭을 처리하는 프로그램용 아키텍쳐를 도시한 것이다. 도 5 의 프로그램 아키텍쳐에서, 명령(510)은 초기 데이터블럭을 스크래치패드(350)의 제1부분으로 프리페치한다. 다음 데이터 블록을 스크래치 패드(350)의 제 2 부분으로 프리페치하는 명령(530)은 명령(520)에 이어 실행하지만, 초기 데이터 블록을 처리하는 명령(540)보다 앞서 실행한다. 프로그램 실행동안, 명령(540)은 프리페치명령은 논블럭이고 명령(540)은 명령(530)에 의해 영향받지 않은 스크래치 패드(530)의 부분을 억세스하기 때문에, 명령(530)과 동시에 종료될 수 있다. 이와는 달리, 명령(530)에 이은 명령(540) 대신에, 명령(530)과 (540)은 클럭사이클동안 각 프리페치명령중 다른 명령이 발행될 수 있고 비순차적으로 처리되기 때문에 처리 자원의 효과적인 응용으로 뒤섞인다. 스크래치 패드(530)의 데이타 블록처리에 이어, 명령(550)은 외부 메모리로 블록을 라이트백한다.
본 발명의 다른 특징에 따르면, 벡터 프로세서(220)용 명령세트는 데이터 캐쉬(355)용 프리페치와 라이트백명령을 포함한다. 부록은 예시적인 캐쉬 프리페치 명령(VPFTCH)와 캐쉬 라이트백 명령(VWBACK)에 대한 설명을 포함한다. 이러한 캐쉬 프리페치와 라이트백명령은 단일의 명령이 에스램(360)과 외부 메모리사이의 멀티플 데이터라인을 이동시킨다는 점에서 스크래치 패드명령과 유사하다. 캐쉬 프리페치 명령은 태그가 데이터 캐쉬(355)에 저장된 각 라인용 태그 메모리에 저장된다는 점에서 스크래치 패드명령과는 다르다. 캐쉬 라이트백명령은 외부 메모리에 더티하고 연속된 캐쉬라인에 대응하는 모든 캐쉬라인 또는 캐쉬라인의 일부분을 기입한다. 관련된 더티비트는 클리어된다. 캐쉬 프리페치 및 라이트백명령은 캐쉬 동작에 대한 부가 프로그램 제어를 제공하고, 특히 데이터가 처리되기전에 프로그램이 데이터 캐쉬(355)로 데이터가 프리페치되도록 한다. 따라서, 데이터의 프로세싱이 시작될 때, 프로그램 실행은 저속 외부 메모리에 대한 억세스에 의해 저속화되지 않는다.
스크래치패드 프리페치 및 라이트백 명령과 캐쉬 프리페치 및 라이트백 명령은 스마트 컴파일러에 의해 고속실행코드를 생성하도록 사용될 수 있다. 예를 들면, 컴파일러는 명령세트가 프로세서의 어드레스 공간의 특정부분을 억세스하고 어드레스공간의 상기 부분에 할당된 스크래치 패드를 생성하는 것을 인지한다. 스크래치 패드용 데이터는 실행을 위해 프리페치되고 후에 프로그래머에게 완전하게 명백한 방법으로 라이트백되어진다. 스크래치 패드는 프로그램에 의해 요구되는 바와같은 어드레스공간의 다른 부분에 후에 할당될 수 있다. 캐쉬 프리페치 및 라이트백 명령은 반복사용되는 데이터로 캐쉬를 프리로드하는 동일한 방법에서 사용될 수 있다
부록
이 부록은 도 2 의 멀티프로세서(200)의 예시적인 실시예가 캐쉬 또는 스크래치 패드로부터 프리페치 및 라이트백동작을 실행하는 명령 구문을 설명한다. 명령은 벡터 프로세서(200)의 예시적인 실시예용 명령세트의 일부분이다. 상기의 참고문헌으로 작용하는 미국 특허출원 No.08/699,597 은 완전한 명령세트의 설명을 포함한다.
하기에서 설명될 각 명령은 멀티플 메모리위치를 억세스하고 외부 메모리용 유효 어드레스 EA31:0가 요구된다. 명령 포맷은 명령의 어드레싱모드에 의존한다. 하나의 포맷은 유효 어드레스 EA31:0가 제 1 레지스터로부터의 어드레스와 제 2 레지스터로부터의 색인의 합일 때의 동작을 위한 것이다. 다른 포맷은 유효 어드레스 EA31:0가 레지스터로부터의 어드레스와 명령으로부터의 즉치의 합일 때의 동작을 위한 것이다. 필요하다면, 유효 어드레스는 64바이트 경계로 정렬을 위해 절단된다. 예외은 유효 어드레스가 무효일 경우 발생한다.
각 다음 명령에 대하여, 필드 LN 은 64바이트 캐쉬라인의 수 또는 전송된 64 바이트 데이터블럭의 수를 나타낸다. LN=00 이면, 1개의 64 바이트 캐쉬라인 또는 데이터블럭이 전송된다. LN=01 이면, 2개의 64 바이트 캐쉬라인 또는 데이터블럭이 전송된다. LN=10 이면, 4개의 64 바이트 캐쉬라인 또는 데이터블럭이 전송된다. LN=11 이면, 8개의 64 바이트 캐쉬라인 또는 데이터블럭이 전송된다. 따라서, 단일 명령은 512 바이트의 데이터까지 전송할 수 있다.
VPFTCH 프리페치
명령 VPFTCH 는 외부 메모리의 유효 어드레스 EA31:0로부터 시작하는 멀티플 캐쉬라인을 벡터 프로세서(220)의 데이터 캐쉬로 프리페치한다. VPFTCH 는 테이블 A.1 과 A.2 에 설명된 2가지의 포맷을 갖는다.
테이블 A.1: VPFTCH 포맷
필드 비트 설명
32:24 00000110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 0
A 18
17:10
SRb 9:5 어드레스 레지스터
SRi 4:0 어드레스 색인 레지스터
테이블 A.2: 즉치(卽値)를 갖는 VPFTCH 포맷
필드 비트 설명
32:24 00100110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 0
A 18
IMM7:5 17:15 즉치 오프셋
14:10 불사용
SRb 9:5 어드레스 레지스터
IMM4:0 4:0 즉치 오프셋
어셈블러 구문:
VPFTCH.lnSRb, SRi
VPFTCH.lnSRb, #IMM
VPFTCH.lnSRb+, SRi
VPFTCH.lnSRb+, #IMM
여기서, ln={1, 2, 4, 8}
스크래치 패드로의 VPFTCHSP 프리페치
명령 VPFTCHSP 는 외부 메모리의 유효 어드레스 EA31:0로부터 시작하는 멀티플 64바이트 데이터 블록을 벡터 프로세서(220)의 스크래치 패드(350)로 프리페치한다. VPFTCHSP 는 테이블 A.3 과 A.4 에 설명된 두 가지의 포맷을 갖는다.
테이블 A.3: VPFTCHSP 포맷
필드 비트 설명
32:24 00000110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 1
A 18
17:15 불사용
SRp 14:10 스크래치패드 색인
SRb 9:5 어드레스 레지스터
SRi 4:0 어드레스 색인 레지스터
테이블 A.4: 즉치(卽値)를 갖는 VPETCHSP 포맷
필드 비트 설명
32:24 00100110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 1
A 18
IMM7:5 17:15 즉치 오프셋
SRp 14:10 스크래치패드 오프셋
SRb 9:5 어드레스 레지스터
IMM4:0 4:0 즉치 오프셋
유효 어드레스 EA31:0은 외부 메모리의 시작 어드레스를 제공하고 레지스터 SRp 는 스크래치패드의 시작 어드레스를 제공한다. 유효 어드레스 EA31:0 는 64바이트 경계에 있지 않다면, 64바이트 경계에 얼라인되도록 제일 먼저 절단된다. SRp 의 스크래치패드 포인터 어드레스가 64바이트 경계에 있지 않다면, 역시 64 바이트 경계에 얼라인되도록 절단된다. 얼라인된 스크래치패드 포인터 어드레스는 전송된 바이트수 만큼 증가한다. 어느 어드레스가 무효하다면, 무효 데이터어드레스 예외가 발생한다.
어셈블러 구문:
VPFTCHSP.ln SRp, SRb, SRi
VPFTCHSP.ln SRp, SRb, #IMM
VPFTCHSP.ln SRp, SRb+, SRi
VPFTCHSP.ln SRp, SRb+, #IMM
여기서, ln={1, 2, 4, 8}
동작
EA = SRb + {SRi ││ sex(IMM7:0)};
if (A == 1) SRb = EA;
Num_bytes = {64 ││ 128 ││ 256 ││ 512};
Mem_adrs = EA31:6: 6b'000000;
SRp = SRp31:6: 6b'000000;
for (i = 0; i Num_bytes; i++)
SPAD[SRp++] = MEM[Mem_adrs+i];
VWBACK 라이트백
명령 VWBACK 는 캐쉬라인이 변경된 데이터를 포함하는 경우 외부 메모리에 (유효 어드레스 EA 와 매칭되는 태그에 대향하는) 유효 어드레스 EA 에 의해 규정된 색인을 갖는 캐쉬라인으로부터 시작하는 멀티플 캐쉬라인을 기입한다. 하나이상의 캐쉬라인이 규정된 경우에는, 캐쉬라인이 변경된 데이터를 포함하면 순차 캐쉬라인이 메모리에 업데이트된다. VWBACK 는 테이블 A.5 와 A.6에 설명된 두가지 포맷을 갖는다.
테이블 A.5: VWBACK 포맷
필드 비트 설명
32:24 00010110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 0
A 18
17:10
SRb 9:5 어드레스 레지스터
SRi 4:0 어드레스 색인 레지스터
테이블 A.6: 즉치(卽値)를 갖는 VWBACK 포맷
필드 비트 설명
32:24 00110110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 0
A 18
IMM7:5 17:15 즉치 오프셋
14:10 불사용
SRb 9:5 어드레스 레지스터
IMM4:0 4:0 즉치 오프셋
어셈블러 구문:
VWBACK.lnSRb, SRi
VWBACK.lnSRb, #IMM
VWBACK.lnSRb+, SRi
VWBACK.lnSRb+, #IMM
여기서, ln={1, 2, 4, 8}
스크래치 패드로부터 VWBACKSP 라이트백
스크래치 패드로부터 메모리로의 멀티플 64바이트 블록을 전송한다. 유효 어드레스 EA 는 외부 메모리의 시작 어드레스이고 레지스터 SRp 는 스크래치패드용 스크래치 패드 포인터 어드레스 SPAD 를 제공한다. 필요하다면, 레지스터 SRp 로부터 스크래치 패드 포인터 어드레스 SPAD 는 64바이트 경계에 얼라인되도록 절단된다. 얼라인된 스크래치패드 포인터 어드레스 SPAD 는 전송된 비트수만큼 증가된다. 테이블 A.7 과 A.8 은 VWBACK 명령용 두가지 포맷을 설명한 것이다.
테이블 A.7: VWBACKSP 포맷
필드 비트 설명
32:24 00010110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 1
A 18
17:15 불사용
SRp 14:10 스크래치패드 색인
SRb 9:5 어드레스 레지스터
SRi 4:0 어드레스 색인 레지스터
테이블 A.8: 즉치(卽値)를 갖는 VWBACKSP 포맷
필드 비트 설명
32:24 00110110
23:22 불사용
LN 21:20 캐쉬라인의 수
19 1
A 18
IMM7:5 17:15 즉치 오프셋
SRp 14:10 스크래치패드 색인
SRb 9:5 어드레스 레지스터
IMM4:0 4:0 즉치 오프셋
VWBACK 와 VWBACKSP 는 동일 연산코드를 사용함을 알아야 한다.
어셈블러 구문:
VWBACKSP.lnSRp, SRb, SRi
VWBACKSP.lnSRp, SRb, #IMM
VWBACKSP.lnSRp, SRb+, SRi
VWBACKSP.lnSRp, SRb+, #IMM
여기서, ln={1, 2, 4, 8}
동작
EA = SRb + {SRi ││ sex(IMM7:0)};
if (A == 1) SRb = EA;
Num_bytes = {64 ││ 128 ││ 256 ││ 512};
Mem_adrs = EA31:6: 6b'000000;
SRp = SRp31:6: 6b'000000;
for (i = 0; i Num_bytes; i++)
SPAD[SRp++] = MEM[Mem_adrs+i];
관련된 출원에 대한 상호참고문헌
본 발명은 1996년 8월 19일 출원된 미국 특허출원 시리얼 No.08/697,102, 대리인 문서 No.M-4354-US 의 멀티미디어 신호 프로세서의 멀티프로세서동작 과;
1996년 8월 19일 출원된 미국 특허출원 시리얼 No.08/699,597, 대리인 문서 No.M-4355-US 의 멀티미디어 신호 프로세서의 단일명령-멀티플 데이타 처리 에 관련되고, 이에 의해 구체화된다.
상기한 바와같은 본 발명에 따르면, 사용자가 고정된 사이즈의 스크래치 패드에 프로그램을 적용시키기 보다는 규정된 프로그램의 필요조건에 따라 스크래치 패드와 캐쉬의 크기를 선택할 수 있는 이점이 있다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.

Claims (10)

  1. 메모리와;
    메모리에 대한 억세스를 제어하는 제어회로를 포함하며,
    상기 제어회로는 배치가능하여 메모리의 첫번째부분은 캐쉬메모리로서 억세스되고 메모리부의 제 2 부분은 스크래치패드로서 억세스되는 것을 특징으로 하는 캐쉬 시스템.
  2. 제 1 항에 있어서,
    상기 제어회로는,
    태그 메모리와;
    입력 어드레스신호를 수신하고, 상기 메모리의 제 2 부분에 대응하는 어드레스신호로부터 상기 메모리의 제 2 부분의 저장위치를 식별하는 색인을 발생하며, 히트/미스 계산용 상기 태그 메모리로 상기 메모리의 제 2 부분에 대응하지 않는 어드레스신호를 보내는 어드레스 파이프라인을 포함하는 것을 특징으로 하는 캐쉬 시스템.
  3. 제 2 항에 있어서,
    상기 태그 메모리는 상기 메모리의 제 1 부분에 관련된 제 1 섹션과 상기 메모리의 제 2 부분에 관련된 제 2 섹션으로 분할되고, 히트/미스계산은 상기 태그메모리의 제 2 섹션을 디스에이블시키는 것을 특징으로 하는 캐쉬 시스템.
  4. 제 3 항에 있어서,
    캐쉬 엔트리 생성은 상기 태그 메모리의 제 2 부분을 디스에이블시키는 것을 특징으로 하는 캐쉬 시스템.
  5. 메모리와;
    상기 메모리에 대한 억세스를 제어하는 캐쉬제어회로를 포함하며,
    상기 캐쉬제어회로는 배치가능하여 상기 메모리의 제 1 부분이 캐쉬 메모리로서 억세스되고 상기 메모리 섹션의 제 2 부분은 스크래치 패드로서 억세스되도록 하는 것을 특징으로 하는 프로세서.
  6. 제 5 항에 있어서,
    상기 메모리의 상기 제 1 부분의 사이즈를 선택하는 레지스터 필드를 더 포함하는 것을 특징으로 하는 프로세서.
  7. 제 5 항에 있어서,
    상기 메모리의 제 2 부분에 대한 베이스 어드레스를 선택하기 위한 레지스터 필드를 더 포함하는 것을 특징으로 하는 프로세서.
  8. 프로세서를 동작시키는 방법에 있어서,
    온칩 메모리의 제 1 유효 어드레스를 나타내는 제 1 값을 명령으로부터 추출하는 단계와;
    외부 메모리의 제 2 유효 어드레스를 나타내는 제 2 값을 명령으로부터 추출하는 단계와;
    전송될 데이터 라인수를 나타내는 제 3 값을 명령으로부터 추출하는 단계와;
    온칩 메모리의 제 1 유효 어드레스로부터 시작하는 순차 어드레스와 외부 메모리의 제 2 유효 어드레스로부터 시작하는 순차 어드레스사이로 데이터 라인수를 이동시키는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 온칩 메모리는 스크래치 패드인 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 데이터 라인수를 이동시키는 동안 무질서하게 제 2 명령을 실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1019970016964A 1996-10-18 1997-05-02 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드 KR100257518B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/733,818 US5966734A (en) 1996-10-18 1996-10-18 Resizable and relocatable memory scratch pad as a cache slice
US8/733,818 1996-10-18

Publications (2)

Publication Number Publication Date
KR19980032100A true KR19980032100A (ko) 1998-07-25
KR100257518B1 KR100257518B1 (ko) 2000-06-01

Family

ID=24949228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970016964A KR100257518B1 (ko) 1996-10-18 1997-05-02 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드

Country Status (4)

Country Link
US (1) US5966734A (ko)
JP (1) JPH10187533A (ko)
KR (1) KR100257518B1 (ko)
TW (1) TW382091B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917491B1 (ko) * 2001-02-21 2009-09-16 가부시키가이샤 한도다이 리코가쿠 겐큐 센터 캐시 메모리 시스템
KR20210075007A (ko) * 2019-12-12 2021-06-22 한국전자통신연구원 인공지능 프로세서를 위한 캐시

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9727485D0 (en) * 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
US5948095A (en) * 1997-12-31 1999-09-07 Intel Corporation Method and apparatus for prefetching data in a computer system
US7171547B1 (en) * 1999-12-28 2007-01-30 Intel Corporation Method and apparatus to save processor architectural state for later process resumption
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
EP1182561B1 (en) * 2000-08-21 2011-10-05 Texas Instruments France Cache with block prefetch and DMA
US6643736B1 (en) * 2000-08-29 2003-11-04 Arm Limited Scratch pad memories
US20030033483A1 (en) * 2001-08-13 2003-02-13 O'connor Dennis M. Cache architecture to reduce leakage power consumption
US20030046492A1 (en) * 2001-08-28 2003-03-06 International Business Machines Corporation, Armonk, New York Configurable memory array
US6782463B2 (en) * 2001-09-14 2004-08-24 Intel Corporation Shared memory array
US6829692B2 (en) * 2001-09-14 2004-12-07 Intel Corporation System and method for providing data to multi-function memory
US7080211B2 (en) * 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a cache line from memory
US7080210B2 (en) * 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for exclusive prefetch of a cache line from memory
US7089368B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for exclusively prefetching a block of cache lines from memory
US7089371B2 (en) 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US6836833B1 (en) * 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
US7188215B2 (en) * 2003-06-19 2007-03-06 Ip-First, Llc Apparatus and method for renaming a cache line
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7526608B2 (en) * 2004-05-28 2009-04-28 Sony Computer Entertainment Inc. Methods and apparatus for providing a software implemented cache memory
US7380180B2 (en) * 2004-07-16 2008-05-27 Intel Corporation Method, system, and apparatus for tracking defective cache lines
US7401184B2 (en) * 2004-11-19 2008-07-15 Intel Corporation Matching memory transactions to cache line boundaries
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7370178B1 (en) 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7783799B1 (en) * 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
JP4862566B2 (ja) * 2006-09-04 2012-01-25 富士通株式会社 動画像処理装置及びプリフェッチ制御方法
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
KR20090064394A (ko) * 2006-09-26 2009-06-18 코닌클리케 필립스 일렉트로닉스 엔.브이. 복수의 메모리 뱅크를 이용한 데이터 처리
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US7685409B2 (en) * 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
US9405683B2 (en) * 2007-11-06 2016-08-02 Samsung Electronics Co., Ltd. Processor and memory control method for allocating instructions to a cache and a scratch pad memory
KR101312281B1 (ko) * 2007-11-06 2013-09-30 재단법인서울대학교산학협력재단 프로세서 및 메모리 제어 방법
JP5217432B2 (ja) 2007-12-28 2013-06-19 富士通株式会社 セクタ機能付きキャッシュメモリ
DE102008009634A1 (de) * 2008-02-15 2009-08-27 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop
KR101496340B1 (ko) * 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
US8543796B2 (en) * 2008-11-05 2013-09-24 Intel Corporation Optimizing performance of instructions based on sequence detection or information associated with the instructions
US20110131381A1 (en) * 2009-11-27 2011-06-02 Advanced Micro Devices, Inc. Cache scratch-pad and method therefor
US8850151B2 (en) * 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US9424210B1 (en) * 2010-10-22 2016-08-23 Altera Corporation SDRAM memory organization and efficient access
US8904109B2 (en) * 2011-01-28 2014-12-02 Freescale Semiconductor, Inc. Selective cache access control apparatus and method thereof
US8756405B2 (en) 2011-05-09 2014-06-17 Freescale Semiconductor, Inc. Selective routing of local memory accesses and device thereof
US9417794B2 (en) 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
US9275096B2 (en) 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
JP2013242823A (ja) * 2012-05-23 2013-12-05 Toshiba Corp 情報処理装置、情報処理方法および制御プログラム
US9971686B2 (en) * 2015-02-23 2018-05-15 Intel Corporation Vector cache line write back processors, methods, systems, and instructions
US20170286114A1 (en) * 2016-04-02 2017-10-05 Intel Corporation Processors, methods, and systems to allocate load and store buffers based on instruction type
US10049044B2 (en) * 2016-06-14 2018-08-14 Advanced Micro Devices, Inc. Asynchronous cache flushing
US11341066B2 (en) * 2019-12-12 2022-05-24 Electronics And Telecommunications Research Institute Cache for artificial intelligence processor
KR20220023649A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN117312330B (zh) * 2023-11-29 2024-02-09 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
JPH06314241A (ja) * 1993-03-04 1994-11-08 Sharp Corp 高速半導体記憶装置及び高速連想記憶装置
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5619680A (en) * 1994-11-25 1997-04-08 Berkovich; Semyon Methods and apparatus for concurrent execution of serial computing instructions using combinatorial architecture for program partitioning
US5721874A (en) * 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917491B1 (ko) * 2001-02-21 2009-09-16 가부시키가이샤 한도다이 리코가쿠 겐큐 센터 캐시 메모리 시스템
KR20210075007A (ko) * 2019-12-12 2021-06-22 한국전자통신연구원 인공지능 프로세서를 위한 캐시

Also Published As

Publication number Publication date
JPH10187533A (ja) 1998-07-21
TW382091B (en) 2000-02-11
KR100257518B1 (ko) 2000-06-01
US5966734A (en) 1999-10-12

Similar Documents

Publication Publication Date Title
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
KR100227278B1 (ko) 캐쉬 제어 유닛
US6665749B1 (en) Bus protocol for efficiently transferring vector data
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
KR101363585B1 (ko) 마이크로프로세서용 구성가능한 캐시
KR101441019B1 (ko) 마이크로프로세서용 구성가능한 캐시
US6742106B2 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
KR101462220B1 (ko) 마이크로프로세서용 구성가능한 캐시
US6553486B1 (en) Context switching for vector transfer unit
US6634021B2 (en) User controlled relaxation of optimization constraints related to volatile memory references
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
KR100373576B1 (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
US6625720B1 (en) System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
KR100448675B1 (ko) 확장기능을지정하기위한명령어필드를사용하는마이크로프로세서
JP3105110B2 (ja) 演算装置
JP2696578B2 (ja) データ処理装置
US20030135717A1 (en) Method and apparatus for transferring vector data
Omondi et al. High-Performance Memory Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120229

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee